const translations = {
  language: 'English',
  productName: 'Refly',
  welcomeMessage: 'What Can I Help You Write?',
  privacyPage: {
    title: 'Privacy Policy',
  },
  termsPage: {
    title: 'Terms of Service',
  },
  form: {
    previous: '← Previous',
    next: 'Next →',
    submit: 'Submit & Earn',
    submitting: 'Submitting...',
    submitSuccess: '🎉 Refly will recommend the best templates and tasks!',
  },
  common: {
    poweredBy: 'Powered by',
    confirm: 'Confirm',
    cancel: 'Cancel',
    delete: 'Delete',
    edit: 'Edit',
    save: 'Save',
    import: 'Import',
    saveToCanvas: 'Add to Canvas',
    noData: 'No data',
    search: 'Search',
    skip: 'Skip',
    finish: 'Finish',
    add: 'Add',
    addSuccess: 'Add successfully',
    remove: 'Remove',
    removeSuccess: 'Remove successfully',
    goBack: 'Go Back',
    library: 'Library',
    untitled: 'Untitled',
    agent: 'Agent',
    loading: 'Loading...',
    activating: 'Activating...',
    loadMore: 'Load More',
    dontShow: "Don't show again",
    appStarting: 'Application is starting',
    more: 'More',
    putErr: 'Failed to perform operation. Please try again!',
    putSuccess: 'Operation Successful',
    deleteConfirmMessage: 'Are you sure to delete?',
    multiSelect: 'Multi-select',
    input: 'Input',
    context: 'Context',
    templateConfig: 'Template Config',
    required: 'This item is required',
    empty: 'No content',
    selectContext: 'Select Context',
    emptyInput: 'Content is empty, please fill in or select content',
    retry: 'Retry',
    connectionFailed: 'Connection failed, please try again',
    reset: 'Reset',
    apply: 'Apply',
    collapse: 'Collapse',
    open: 'Open',
    close: 'Close',
    canvas: 'Canvas',
    newCanvas: 'New Canvas',
    skillResponse: 'Skill Response',
    resource: 'Resource',
    document: 'Document',
    newDocument: 'New Document',
    docs: 'Docs',
    skill: 'Skill',
    thread: 'Thread',
    thinking: 'Refly AI is thinking',
    meta: 'Meta',
    project: 'Project',
    upgrade: 'Upgrade',
    upgradeSubscription: 'Upgrade Subscription',
    inviteFriends: 'Earn Credits by Inviting',
    inviteRewardText: 'Each gets 500 credits',
    dismiss: 'Dismiss',
    copyRequestInfo: 'Copy Request Info',
    tryAgain: 'Try again',
    copy: {
      title: 'Copy',
      success: 'Content has been copied to the clipboard!',
      failed: 'Copy failed, please try again!',
    },
    login: 'Sign In',
    signup: 'Sign Up',
    share: 'Share',
    dragAndDropFiles: 'Drag and drop files here',
    uploadImage: 'Upload Image',
    uploadSuccess: 'Upload successful',
    uploadFailed: 'Upload failed',
    upload: {
      notification: {
        uploading: 'Uploading {{count}} file{{suffix}}',
        progress: '{{completed}} of {{total}} completed',
        complete: 'complete',
        success: 'Successfully uploaded {{count}} file{{suffix}}',
        allUploaded: 'Upload complete! Your content is now ready to be used',
        partialSuccess: 'Upload completed with some errors',
        partialSuccessDesc: '{{success}} successful, {{error}} failed',
        failed: 'Upload failed',
        allFailed: 'All files failed to upload',
      },
    },
    errorNotice: {
      resultId: 'Request ID: {{resultId}}',
    },
    dropImageHere: 'Drop image here',
    presetColors: 'Preset Colors',
    duplicate: 'copy',
    shareSuccess: 'Share link copied to clipboard!',
    shareError: 'Share failed, please try again!',
    readonlyWarning: 'Read-Only Mode',
    readonlyDragDescription: 'Canvas is in read-only mode, modifications are not allowed.',
    preview: 'Preview',
    noContent: 'No Content',
    noContentDesc: 'This page has no content yet',
    wideModeLoadFailed: 'Failed to load content in wide mode',
    returnToList: 'Return to List',
    shareLink: 'Share Link',
    loadFailed: 'Failed to load page',
    loadFailedDesc: 'Please try again later',
    noPage: 'Page not found',
    noPageDesc: 'The page you are looking for does not exist',
    titlePlaceholder: 'Enter page title',
    descriptionPlaceholder: 'Enter page description (optional)',
    addContent: 'Add Content',
    addContentInfo: 'Content addition feature is coming soon',
    whoCanView: 'Who can view this page',
    internetUsers: 'Anyone with the link',
    notEnabled: 'Not enabled',
    copyShareLink: 'Copy Share Link',
    shareUrl: 'Share URL',
    shareUrlDesc: 'Anyone with this link can view this page content',
    saving: 'Saving...',
    savePage: 'Save Page',
    deleteSuccess: 'Deleted successfully',
    deleteFailed: 'Failed to delete',
    shareFailed: 'Failed to share',
    saveSuccess: 'Saved successfully',
    saveFailed: 'Failed to save',
    copied: 'Copied',
    searchNodes: 'Search nodes',
    noMatchingNodes: 'No matching nodes',
    selectedItems: 'Selected {{count}} items',
    noItemsSelected: 'No items selected',
    clear: 'Clear',
    featured: 'Featured',
    nodesAddedSuccess: 'Nodes added successfully',
    nodesAddedFailed: 'Failed to add nodes',
    canvasIdMissing: 'Canvas ID is missing',
    contentAdded: 'Content added',
    emptyContent: 'No content',
    clickToAdd: 'Click to add',
    selectAll: 'Select All',
    deselectAll: 'Deselect All',
    addNode: 'Add Node',
    viewAll: 'View All',
    noMore: 'No more',
    action: 'Action',
    actions: 'Actions',
    addedToCanvas: 'Added to canvas',
    operationFailed: 'Operation failed',
    confirmClose: 'Confirm Close',
    enable: 'Enable',
    disable: 'Disable',
    enabled: 'Enabled',
    disabled: 'Disabled',
    create: 'Create',
    update: 'Update',
    unknown: 'Unknown',
    validate: 'Validate',
    refresh: 'Refresh',
    generating: 'Generating...',
    yes: 'Yes',
    no: 'No',
    sharing: 'Sharing...',
    view: 'View',
    joinDiscord: 'Join Discord Community',
  },
  mode: {
    ask: 'Ask',
    agent: 'Agent',
    askDescription: 'Ask mode: answer your question in a single step',
    agentDescription: 'Agent mode: automatically plan and execute tasks',
    media: 'Media',
    mediaDescription: 'Media mode: generate images, videos, audios',
  },
  pages: {
    share: {
      sharedAt: 'Shared at',
      slideshow: 'Slideshow',
      noContent: 'No Content',
      noContentDesc: 'This shared page has no content',
      loadingContent: 'Loading...',
      loadFailed: 'Failed to load page',
      loadFailedDesc: 'Please check your network connection or try again later',
      pageNotExist: 'Page does not exist',
      pageNotExistDesc: 'Please check the URL or return to page list',
      returnToList: 'Return to List',
      wideModeLoadFailed: 'Failed to load content',
      navigationDirectory: 'Navigation Directory',
      swipeHint: 'Swipe left or right to switch slides',
      invalidShareLink: 'Invalid share link',
      expiredShareLink: 'This share link may have expired or does not exist',
    },
    edit: {
      savePage: 'Save Page',
      saving: 'Saving...',
      saveSuccess: 'Save Success',
      saveFailed: 'Save Failed',
      back: 'Back',
      titlePlaceholder: 'Enter page title',
      descriptionPlaceholder: 'Enter page description (optional)',
      noContent: 'No Content',
      noContentDesc: 'This page has no content yet',
      addContent: 'Add Content',
      deleteNodeConfirm: 'Confirm Delete Node',
      deleteNodeSuccess: 'Node deleted successfully',
      deleteNodeFailed: 'Failed to delete node',
      shareLink: 'Share Link',
      whoCanView: 'Who can view this page',
      internetUsers: 'Anyone with the link',
      notEnabled: 'Not enabled',
      copyShareLink: 'Copy Share Link',
      shareUrl: 'Share URL',
      copied: 'Copied',
      copy: 'Copy',
      shareUrlDesc: 'Anyone with this link can view this page content',
      sharing: 'Sharing...',
      shareSuccess: 'Share Success',
      shareFailed: 'Share Failed',
      preview: 'Preview',
      loading: 'Loading...',
      loadFailed: 'Failed to load page',
      loadFailedDesc: 'Please try again later',
      noPage: 'Page not found',
      noPageDesc: 'The page you are looking for does not exist',
      returnToList: 'Return to List',
    },
    components: {
      navigationDirectory: 'Navigation Directory',
      swipeHint: 'Swipe left or right to switch slides ({current}/{total})',
      codeComponent: 'Code Component',
      documentComponent: 'Document Component',
      slide: 'Slide {index}',
      artifact: {
        webRender: 'Web Render',
        reactComponent: 'React Component',
        flowchart: 'Flowchart',
        mindmap: 'Mind Map',
        markdown: 'Markdown',
        code: 'Code',
        svgImage: 'SVG Image',
        notSelected: 'No component selected',
        loading: 'Loading...',
        generating: 'Generating...',
        fixCodeNeeded: 'Code fix needed',
      },
      image: {
        defaultTitle: 'Image',
        notFound: 'Image resource not found',
      },
      nodeBlock: {
        untitledNode: 'Untitled Node',
        confirmDelete: 'Remove Node',
        confirmDeleteContent:
          'Are you sure you want to remove this node? This action cannot be undone.',
        deleteNode: 'Remove Node',
        wideModeView: 'Wide Mode View',
        slideshowPreview: 'Slideshow Preview',
      },
      nodeRenderer: {
        unsupportedComponent: 'Unsupported Component',
        onlyCodeComponentSupported: 'Only Code Component Type Supported',
      },
      preview: {
        unsupportedNodeType: 'Unsupported Content Type',
        navigationDirectory: 'Navigation Directory',
        slideshowPreview: 'Slideshow Preview',
        swipeToNavigate: 'Swipe left or right to navigate slides',
      },
      skillResponse: {
        notSelected: 'No Skill Response Component Selected',
      },
      sidebar: {
        addNewSlideInDevelopment: 'Adding new code component is under development',
        noNavigationDirectory: 'No navigation directory',
      },
    },
    list: {
      fetchFailed: 'Failed to fetch page list',
      shareSuccess: 'Shared successfully, link copied to clipboard',
      shareFailed: 'Failed to share',
      deleteSuccess: 'Deleted successfully',
      deleteFailed: 'Failed to delete',
      title: 'Title',
      status: 'Status',
      statusDraft: 'Draft',
      statusPublished: 'Published',
      createdAt: 'Created At',
      updatedAt: 'Updated At',
      actions: 'Actions',
      edit: 'Edit',
      share: 'Share',
      delete: 'Delete',
      confirmDelete: 'Are you sure you want to delete this page?',
      myPages: 'My Pages',
      createPage: 'Create Page',
      noPages: 'No pages yet',
    },
    new: {
      createPageFromCanvas: 'Create Page from Canvas',
      pageTitle: 'Page Title',
      optional: 'Optional',
      enterPageTitle: 'Enter Page Title',
      enterCanvasId: 'Enter Canvas ID',
      loadNodes: 'Load Nodes',
      selectNodesToInclude: 'Select Nodes to Include',
      untitled: 'Untitled',
      type: 'Type',
      selectAll: 'Select All',
      deselectAll: 'Deselect All',
      createPage: 'Create Page',
      instructions: 'Instructions',
      instructionStep1: 'Enter Canvas ID and click "Load Nodes" button',
      instructionStep2: 'Select the nodes you want to include in the page from the list',
      instructionStep3: 'Enter Page Title (optional)',
      instructionStep4: 'Click "Create Page" button',
      instructionStep5: 'After successful creation, you will be redirected to the page list',
      createPageFailed: 'Create Page Failed',
      noValidNodes: 'No valid nodes found',
      noNodesFound:
        'No available nodes found in Canvas, the node types that can be included in the slideshow are: document, resource, skill response, memo, website, artifact, please create available nodes in the canvas first',
      invalidApiResponse: 'Invalid API response',
      fetchCanvasDataFailed: 'Failed to fetch Canvas data',
      pleaseEnterCanvasId: 'Please enter Canvas ID',
      pleaseSelectAtLeastOneNode: 'Please select at least one node',
      untitledPage: 'Untitled Page',
      createdFromCanvas: 'Created from Canvas {canvasId}',
      pageCreatedSuccess: 'Page created successfully',
      pageId: 'Page ID',
      unknown: 'Unknown',
      refresh: 'Refresh Nodes',
    },
    slideshow: {
      title: 'Slideshow',
      newSlide: 'Click to create slideshow',
      newSlideDescription: 'No slideshow? Click to create one',
    },
    viewAll: 'View All',
    noMore: 'No more~',
    action: 'Action',
  },
  verifyRules: {
    emailRequired: 'Email cannot be empty',
    emailInvalid: 'Please enter a valid email address',
    passwordRequired: 'Password cannot be empty',
    passwordMin: 'Password must contain 8 or more characters',
    passwordConfirmNotMatch: 'The new password that you entered do not match!',
  },
  editor: {
    placeholder: {
      default: "Press 'space' for AI, press '/' for commands",
      title: 'Enter The Title',
    },
    aiSelector: {
      thinking: 'AI is thinking',
    },
    command: {
      askAi: 'Ask AI',
      askAiDescription: 'Ask AI to help you write',
      text: 'Text',
      textDescription: 'Just start typing with plain text',
      heading1: 'Heading 1',
      heading1Description: 'Big section heading',
      toDoList: 'To-do List',
      toDoListDescription: 'Track tasks with a to-do list',
      bulletList: 'Bullet List',
      bulletListDescription: 'Create a simple bullet list',
      quote: 'Quote',
      quoteDescription: 'Capture a quote',
      code: 'Code',
      codeDescription: 'Capture a code snippet',
      image: 'Image',
      imageDescription: 'Upload an image from your computer',
      table: 'Table',
      tableDescription: 'Create a table',
    },
    nodeSelector: {
      text: 'Text',
      heading1: 'Heading 1',
      heading2: 'Heading 2',
      heading3: 'Heading 3',
      toDoList: 'To-do List',
      bulletList: 'Bullet List',
      numberedList: 'Numbered List',
      quote: 'Quote',
      code: 'Code',
    },
    linkSelector: {
      placeholder: 'Paste a link',
    },
    colorSelector: {
      color: 'Color',
      background: 'Background',
      default: 'Default',
      purple: 'Purple',
      red: 'Red',
      yellow: 'Yellow',
      blue: 'Blue',
      green: 'Green',
      orange: 'Orange',
      pink: 'Pink',
      gray: 'Gray',
    },
    table: {
      addRowBefore: 'Add Row Before',
      addRowAfter: 'Add Row After',
      deleteRow: 'Delete Row',
      addColumnBefore: 'Add Column Before',
      addColumnAfter: 'Add Column After',
      deleteColumn: 'Delete Column',
      deleteTable: 'Delete Table',
    },
  },
  systemMaintenanceShutdown: {
    title: 'Dear Valued Users,',
    content:
      'We are dedicated to enhancing the stability and efficiency of our services. To achieve this, we have scheduled a system maintenance that will take place from 21:00 to 23:00 Beijing Time. During this period, our services will be temporarily unavailable. For our users in Seattle, this maintenance corresponds to 05:00 to 07:00 AM local time, taking into account the current daylight saving time adjustments. We apologize for any inconvenience this may cause and appreciate your understanding and support.',
  },
  tabMeta: {
    threadLibrary: {
      title: 'Threads',
    },
    settings: {
      title: 'Settings',
    },
    skill: {
      title: 'Skills',
    },
  },
  landingPage: {
    slogan: 'The Open-Source Agentic Workspace for Human-AI Collaboration',
    description:
      "Refly.AI is the open-source Agentic Workspace for Human-AI Collaboration. Seamlessly blend human insight with AI execution across real-world scenarios—whether you're rapidly prototyping a product design, creating polished presentations, conducting hot-topic analysis, automating deep research workflows, generating multimodal marketing content, or orchestrating complex operational pipelines, Refly empowers your team to achieve any task with transparency and control.",
    anotherDescription:
      "Refly.AI is the open-source Agentic Workspace for Human-AI Collaboration. Seamlessly blend human insight with AI execution across real-world scenarios—whether you're rapidly prototyping a product design, creating polished presentations, conducting hot-topic analysis, automating deep research workflows, generating multimodal marketing content, or orchestrating complex operational pipelines, Refly empowers your team to achieve any task with transparency and control.",
    simplyDescription: {
      first:
        'Powered by multi-threaded dialogue, artifacts, knowledge integration, context memory, and intelligent search, ',
      second: 'Refly is the best way to transform ideas into quality content.',
    },
    messageText: '🚀 v0.10.0 Released! A powerful update with a unified resource panel. 🚀',
    simpleMessageText: '🚀 v0.10.0 Released! A powerful update with a unified resource panel. 🚀',
    tryForFree: 'Get Started',
    tryItNow: 'Try It Now',
    creationEngine: 'Creation Engine',
    addToChrome: 'Install Browser Extension',
    contactUs: 'Contact Us',
    watchVideo: 'Watch Video',
    joinBtn: 'Join for free',
    downloadBtn: 'Download Extension',
    loginBtn: 'Login',
    dashboard: 'Dashboard',
    workflow: {
      tag: 'Workflow',
      title: "An Overview of Refly's",
      workflowOne: {
        tag: 'Planning',
        title:
          'Transform chaos into clarity with our free-form canvas for professional content creation',
        bulletPoints: [
          'Coverage of 20+ professional templates for academic research, technical documentation, and more',
          'AI-powered topic analysis and intelligent research framework generation',
          'Build deep thought connections through your growing personal knowledge base',
        ],
      },
      workflowTwo: {
        tag: 'Explore & Import',
        title:
          'Break down knowledge barriers, turning fragmented information into creative resources',
        bulletPoints: [
          'One-click import of papers, web pages, and various professional materials',
          'AI-powered search for swift identification of key references',
          'Automatic knowledge linking for cross-domain insights',
        ],
      },
      workflowThree: {
        tag: 'Research',
        title: 'Spark insights through multi-threaded dialogues, making research more illuminating',
        bulletPoints: [
          'Freely explore ideas through canvas-based dialogues',
          'Smart context management for precise research direction',
          'Flexible knowledge base integration for accelerated breakthroughs',
        ],
      },
      workflowFour: {
        tag: 'Thinking & Creation',
        title:
          'From ideation to completion, elevate your professional content with deeper insights',
        bulletPoints: [
          'Customize your writing environment with flexible context selection',
          'N+ professional writing tools to enhance academic/technical writing efficiency',
          'AI editing assistant for quality professional output',
          'Support for multiple artifact types, including documents, PPTs, SVGs, HTML, React and more',
        ],
      },
      workflowFive: {
        tag: 'Clip & Save',
        title: 'One-click content saving from any webpage to build your second brain',
        bulletPoints: [
          'One-click save content from any webpage (Twitter, Notion, etc.)',
          'Support private webpage content saving and organization',
          'Continuously build your personal knowledge base',
          'Seamlessly integrate with your second brain',
        ],
      },
    },
    features: {
      tag: 'Core Features',
      title: "Refly's",
      fileFormats: {
        pdf: {
          name: 'document.pdf',
          body: 'Professional PDF documents with rich text, images, and interactive elements that maintain consistent formatting.',
        },
        markdown: {
          name: 'notes.md',
          body: 'Clean and simple Markdown files for documentation, notes, and formatted text with support for code blocks.',
        },
        word: {
          name: 'report.docx',
          body: 'Microsoft Word documents with advanced formatting, track changes, and collaborative editing features.',
        },
        html: {
          name: 'webpage.html',
          body: 'Web pages with structured content, styling, and interactive elements for browser viewing.',
        },
        epub: {
          name: 'book.epub',
          body: 'Digital books in EPUB format with reflowable content, chapters, and multimedia support.',
        },
        jpg: {
          name: 'photo.jpg',
          body: 'High-quality compressed photos and images, perfect for web and print usage.',
        },
        gif: {
          name: 'animation.gif',
          body: 'Animated GIF images for short loops, reactions, and simple motion graphics.',
        },
        png: {
          name: 'screenshot.png',
          body: 'Lossless PNG images with transparency support, ideal for UI elements and screenshots.',
        },
      },
      models: {
        deepseekR1: {
          name: 'DeepSeek R1',
          description: 'Advanced language understanding',
          provider: 'DeepSeek',
        },
        o3mini: {
          name: 'o3-mini',
          description: 'Advanced reasoning and creativity',
          provider: 'OpenAI',
        },
        claude35: {
          name: 'Claude 3.5 Sonnet',
          description: 'Most capable model for highly complex tasks',
          provider: 'Anthropic',
        },
        claude37: {
          name: 'Claude 3.7 Sonnet',
          description: 'Most capable model for highly complex tasks',
          provider: 'Anthropic',
        },
        claude37thinking: {
          name: 'Claude 3.7 Sonnet Thinking',
          description: 'Advanced reasoning and most capable model for highly complex tasks',
          provider: 'Anthropic',
        },
        gemini2pro: {
          name: 'Gemini Pro 2.0',
          description: 'Most capable model for highly complex tasks',
          provider: 'Google',
        },
        gemini2flashthinking: {
          name: 'Gemini 2.0 Flash Thinking',
          description: 'Advanced reasoning and most capable model for highly complex tasks',
          provider: 'Google',
        },
        gemini: {
          name: 'Gemini Flash 2.0',
          description: 'Fast and efficient for everyday tasks',
          provider: 'Google',
        },
        qwen: {
          name: 'Qwen-Max',
          description: 'Powerful multilingual capabilities',
          provider: 'Qwen',
        },
        llama: {
          name: 'Llama 3.3 70B',
          description: 'Open source foundation model',
          provider: 'Meta',
        },
        mistral: {
          name: 'Mistral 8x7B Instruct',
          description: 'Efficient and powerful language model',
          provider: 'Mistral',
        },
      },
      featureOne: {
        tag: 'Multimodal Support',
        title: 'Support for 14+ File and Image Formats for Comprehensive Creation',
        bulletPoints: [
          'Support for PDF, DOCX, RTF, TXT, MD, HTML, EPUB and other document formats',
          'Support for JPG, PNG, JPEG, WEBP, GIF, TIFF, BMP and other image formats',
          'Intelligent recognition and processing of multiple file types for a unified experience',
        ],
      },
      featureTwo: {
        tag: 'Multiple Models',
        title: 'Integration of 13+ Top AI Models for Various Scenarios',
        bulletPoints: [
          'Support for advanced models like Claude, DeepSeek, Gemini, GPT-4o',
          'Standard models including Claude Haiku, DeepSeek V3, Llama',
          'Intelligent model recommendations based on task requirements',
        ],
      },
      featureThree: {
        tag: 'Branching Dialogue',
        title: 'Flexible Branching Dialogue and Smart Context Selection',
        bulletPoints: [
          'Support for branching conversations to explore multiple thought paths simultaneously',
          'Freely select knowledge base or canvas cards as context for enhanced responses',
          'Smart context memory ensures conversation coherence across different branches',
        ],
      },
      featureFour: {
        tag: 'Knowledge Base',
        title: 'Powerful Knowledge Base Management with Data Connector and Browser Extension',
        bulletPoints: [
          'Build personalized knowledge bases for information retention and reuse',
          'Convenient browser extension for one-click web content saving',
          'Smart knowledge association and retrieval for creative inspiration',
        ],
      },
      featureFive: {
        tag: 'WYSIWYG AI Artifacts',
        title:
          'Intelligent AI-Assisted Artifact Editor, including documents, PPTs, SVGs, HTML, React and more',
        bulletPoints: [
          'Real-time AI writing suggestions and refinements',
          'Support for multiple writing styles and format adjustments',
          'Intelligent text analysis and improvement recommendations',
          'Support for multiple artifact types, including documents, PPTs, SVGs, HTML, React and more',
        ],
      },
    },
    pricing: {
      title: 'Plans and Pricing',
      subtitle: 'Embark on your AI content creation journey with Refly',
      description:
        'One-click registration, instantly access top-tier AI models, no configuration required, no credit card needed, unlimited creation.',
      limitedOffer:
        'Now 50% off forever with annual subscription! Price adjustment and unlimited plan discontinuation on March 16th, 00:00 UTC',
    },
    footer: {
      cta: {
        title: 'Ready to experience AI free-form canvas and ignite your creativity?',
        getStarted: 'Get Started',
        contactUs: 'Contact us',
      },
      description:
        "Refly.AI is the world's first open-source human-AI collaborative Agent platform. By combining a visual canvas with a multimodal resource library, it fuses human judgment and AI execution to help designers, operators, and creators efficiently tackle complex tasks—delivering a smoother, more transparent intelligent workspace.",
      right: 'Refly.ai. All rights reserved.',
      product: {
        title: 'Products',
        list: [
          'Free-form Canvas',
          'Multi-threaded Dialogue',
          'Knowledge Base Integration',
          'Context Memory',
          'Intelligent Search',
          'WYSIWYG AI Editor',
        ],
      },
      resource: {
        title: 'Resources',
        twitter: 'Twitter',
        github: 'GitHub',
        discord: 'Discord',
        docs: 'Docs',
      },
      about: {
        title: 'About',
        privacy: 'Privacy Policy',
        terms: 'Terms of Service',
      },
      navigation: {
        homepage: 'Homepage',
        docs: 'Docs',
        guides: 'Guides',
        contactUs: 'Contact Us',
      },
      copyright: '© 2025 by Powerformer, Inc.',
      contactUs: {
        title: 'Contact Us',
        community: 'Community',
        mail: 'Email',
        joinGroup: 'Join User Community',
        scanToJoinWechatGroup: 'Scan to Join WeChat Group',
        orWeChat: 'or WeChat',
        discordGroup: 'Discord Community',
        joinDiscordGroup: 'Join Discord Community',
        notionDocument: 'Notion Document',
        viewDocument: 'View Document',
        feishuDocument: 'Feishu Document',
        followReflyUpdates: 'Follow Refly Updates',
        reflyTwitterAccount: 'Official Account',
      },
      platforms: {
        title: 'Platforms',
        chrome: 'Chrome Extension',
        web: 'Web App',
      },
    },
    loginFailed: {
      title: 'Login Failed',
      content: 'Login failed, please try again',
    },
    loginModal: {
      continue: 'Continue',
      signin: 'Sign in',
      signup: 'Sign up',
      greeting: {
        signin: 'Welcome back!',
        signup: 'Welcome!',
        signinSubtitle: 'Welcome back! Sign in to continue.',
        signupSubtitle: 'Welcome! Please fill in the details to get started.',
      },
      signinTitle: 'Sign in to Refly',
      signinSubtitle: 'Welcome back! Sign in to continue.',
      signupTitle: 'Create your account',
      signupSubtitle: 'Welcome! Please fill in the details to get started.',
      signinHint: 'Already have an account?',
      signupHint: "Don't have an account?",
      oauthBtn: {
        github: 'GitHub',
        google: 'Google',
      },
      emailLabel: 'Email address',
      emailPlaceholder: 'Enter your email address',
      passwordLabel: 'Password',
      passwordPlaceholder: 'Enter your password',
      passwordForget: 'Forget password?',
      loggingStatus: 'Signing in...',
      and: 'and',
      utilText: 'By registering, you agree to our',
      privacyPolicy: 'Privacy Policy',
      terms: 'Terms of Service',
      or: 'or use email to login',
    },
    resetPasswordModal: {
      title: 'Reset Password',
      continue: 'Continue',
      emailLabel: 'Email address',
      emailPlaceholder: 'Enter your email address',
      passwordLabel: 'New password',
      passwordPlaceholder: 'Enter your new password',
      passwordConfirmLabel: 'Confirm password',
      passwordConfirmPlaceholder: 'Enter your new password again',
    },
    tab: {
      home: 'Home',
      product: 'Product',
      price: 'Pricing',
      docs: 'Docs',
      discord: 'Discord',
      priceTag: '-50%',
      community: 'Community',
      wechat: 'WeChat',
      gallery: 'Use Cases',
      useCases: 'Canvas Use Cases',
      artifacts: 'Artifacts Use Cases',
      videoTutorials: 'Video Tutorials',
    },
    faq: {
      title: 'Frequently Asked Questions',
      Q1: 'Can Refly be used for free?',
      A1: 'As an open-source project, for individual users, you can self-deploy the community version to use all our features. To enable more users to quickly start and experience Refly, we provide all registered users with knowledge base quota of 100 files and daily access to 5 T1 model requests and 50 T2 model requests. If you wish to experience advanced models or increase the usage amount, you can upgrade to a paid subscription plan.',
      Q2: 'What payment methods do you support?',
      A2: 'We support bank cards, Alipay, Amazon Pay, and Cash App Pay. The supported payment methods may be subject to change at any time. Please refer to the payment methods displayed in the Stripe checkout page for the most accurate information.',
      Q3: 'How can I change or cancel my subscription plan?',
      A3: `To upgrade or downgrade your subscription plan, please contact the Refly team for assistance. If you need to cancel your subscription, please click the 'Settings - Subscription - Manage Billing and Subscription' button and then proceed to the Stripe platform to manage your subscription. Once the cancellation is successful, your account will be automatically downgraded to the free version upon the expiration of the current plan.`,
      Q4: 'Is a refund available?',
      A4: 'Currently, there is no refund option available. If you have a strong demand for a refund, please contact the Refly team, and we will assist you in resolving the issue.',
      Q5: 'As a Refly user, where is my data stored?',
      A5: 'If you are using the Refly Cloud service, your data is securely stored in the United States. If you choose to self-deploy, the data is stored on the machine where you deploy Refly. We do not collect any data from self-deployed Refly services.',
      Q6: 'Can I deploy Refly privately within enterprises?',
      A6: 'To deploy Refly privately within your enterprise, a commercial license is required. Please contact us at support@refly.ai for further discussion.',
    },
    testimonials: {
      tag: 'User Testimonials',
      title: 'Thousands love their creation with Refly',
      description: 'Join 10000+ Reflyers to unleash inspiration and accelerate creation 👩‍🎨🧑‍🎨',
    },
  },
  priceContent: {
    freeCapabilities: [
      {
        before: 'Free-form canvas based on ',
        highlight: 'multi-threaded sessions',
        after: ' where you can ask questions by freely combining contexts',
      },
      {
        before: 'Powerful skills driven by ',
        highlight: 'standard models',
        after: ': Generate documents, recommend questions, web search, and library search.',
      },
      {
        before:
          'Import resources by web search, file upload, or pasting any link to build a personal knowledge base of a ',
        highlight: 'limited size',
        after: '.',
      },
      {
        before: 'Content creation with AI markdown editor, powered by ',
        highlight: 'standard models',
        after: '',
      },
      {
        before: 'Create PPT, SVG, visual web pages, tables, and Mermaid charts with ',
        highlight: 'standard models',
        after: '',
      },
    ],
    premiumCapabilities: [
      {
        before: 'Free-form canvas based on ',
        highlight: 'multi-threaded sessions',
        after: ' where you can ask questions by freely combining contexts',
      },
      {
        before: 'Powerful skills driven by ',
        highlight: 'advanced models',
        after: ': Generate documents, recommend questions, web search, and library search.',
      },
      {
        before:
          'Import resources by web search, file upload, or pasting any link to build a personal knowledge base of a ',
        highlight: 'large capacity',
        after: '.',
      },
      {
        before: 'Content creation with AI markdown editor, powered by ',
        highlight: 'advanced models',
        after: '',
      },
      {
        before: 'Create PPT, SVG, visual web pages, tables, and Mermaid charts with ',
        highlight: 'advanced models',
        after: '',
      },
    ],
  },
  frontPage: {
    guide: {
      title: '5 minutes to get started',
      description: 'Tutorial to learn how to build an AI-driven workflow',
      view: 'Go to view',
    },
    newWorkflow: {
      title: 'New',
      buttonText: 'New Workflow',
      buttonDescription: 'Create a new workflow',
    },
    tutorial: {
      title: 'Tutorial',
      buttonText: '5 Minutes Tutorial',
      buttonDescription: 'Tutorial for AI-driven workflow',
    },
    recentWorkflows: {
      title: 'Recent Workflows',
      edit: 'Edit',
      more: 'More',
    },
    template: {
      title: 'Marketplace',
      endMessage: {
        title: "Didn't find the workflow automation template you need?",
        subtitle: "Join our Discord and tell us what you're looking for",
        goToMarketplace: 'Explore More Templates',
      },
    },
    agentInputPlaceholder: 'Enter task description, Agent will generate reusable workflows',
    chatInputPlaceholder: 'Enter a task (choose model & tools)',
    githubStar: 'Star us on GitHub!',
    fromCommunity: 'From the community',
    fromCommunityDesc: 'Discover a way to use Refly for work, or even beyond.',
  },
  emailVerification: {
    title: 'Email Verification',
    description: 'Please enter the verification code sent to {{email}}:',
    resendHint: "Can't receive the email?",
    resend: 'Resend',
    resendSuccess: 'Verification email sent successfully',
    submit: 'Submit',
  },
  share: {
    keyFeatures: {
      multiThreadedConversation: 'Multi-threaded Conversation',
      multiModelIntegration: 'Multi-model Integration',
      multiModalProcessing: 'Multi-Modal Processing',
      aiPoweredSkillSystem: 'AI-Powered Skill System',
      knowledgeBaseEngine: 'Knowledge Base Engine',
      intelligentContentCapture: 'Intelligent Content Capture',
      aiEnhancedEditor: 'AI-Enhanced Editor',
    },
  },
  shareContent: {
    title: 'Share',
    login: 'Start Writing with Refly',
    updateShare: 'Sync',
    updateShareTooltip: 'Sync latest shared content',
    updateShareSuccess: '​​Latest canvas content synced and shared successfully!',
    copyLink: 'Copy Link',
    copy: 'Copy',
    linkCopied: 'Link copied',
    copyLinkTooltip: 'Copy shared link',
    publishTemplate: 'Publish as Template',
    updateTemplate: 'Update Template',
    publish: 'Publish',
    publishTemplateTooltip: 'Publish canvas as template',
    waitForAgentsToFinish: 'Please wait for all Agents to finish running before publishing',
    noSkillResponseNodes: 'Please add Agent nodes to the canvas before publishing',
    latestPublishedApp: 'Latest Published App',
    linkShare: 'Link Share',
    updateCanvasPermissionSuccess: 'Update canvas permission successfully',
    copyLinkSuccess: 'Share link copied to clipboard!',
    accessOptions: {
      anyone: 'Anyone with the link',
      anyoneDescription: 'Anyone with the link can access',
      off: 'Only You',
      offDescription: 'Only you can access through the link',
    },
  },
  workspace: {
    addToCanvas: 'Add to Canvas',
    noCanvasSelected: 'Please create or select a canvas',
    exporting: 'Exporting...',
    exportSuccess: 'Export successfully',
    exportFailed: 'Export failed',
    exportAs: 'Export as',
    exportDocumentToMarkdown: 'Export to Markdown',
    exportDocumentToDocx: 'Export to DOCX',
    exportDocumentToPdf: 'Export to PDF',
    openWebpage: 'Open Original Webpage',
    downloadFile: 'Download File',
    canvasListModal: {
      continue: 'Continue Conversation',
    },
    labelGroup: {
      addLabel: 'Click to add labels',
      addLabelTitle: 'Add labels',
      getLabelFailed: 'Failed to get labels',
      deleteConfirmText: 'Are you sure to delete this label?',
      deleteFailed: 'Failed to delete label',
      deleteSuccessful: 'Label deleted successfully',
    },
    newProjectModal: {
      modalTitle: 'Create New Project',
      editModalTitle: 'Edit the Project',
      titlePlaceholder: 'Enter a title for your project',
      title: 'Title',
      description: 'Description',
      descriptionPlaceholder: 'Enter a description for your project',
      cancel: 'Cancel',
      confirm: 'Confirm',
      successful: 'Created successfully',
      failed: 'Failed to create',
      editSuccessful: 'Modified successfully',
      editFailed: 'Failed to modify',
    },
    newLabelModal: {
      modalTitle: 'Create New Label',
      labelClass: 'Class',
      labelClassPlaceholder: 'Please select label class',
      labelClassValidateMessage: 'Label class cannot be empty',
      valueList: 'Labels',
      valueListPlaceholder: 'Input label. Press enter to add multiple labels',
      valueListValidateMessage: 'Please input at least one label',
      title: 'Title',
      cancel: 'Cancel',
      confirm: 'Confirm',
      successful: 'Create successfully',
      failed: 'Failed to create',
      editSuccessful: 'Modified successfully',
      editFailed: 'Failed to modify',
    },
    deleteDropdownMenu: {
      successful: 'Deleted successfully!',
      unbindSuccessful: 'Unbind successfully!',
      failed: 'Failed to delete',
      deleteConfirmForDocument: 'Are you sure you want to delete this document?',
      deleteConfirmForCanvas:
        'Workflow {{canvas}} and all files within it will be permanently deleted. Do you want to continue?',
      deleteConfirmForProject: 'Are you sure you want to delete this project?',
      deleteConfirmForResource: 'Are you sure you want to delete this resource?',
      deleteConfirmForResourceProject: 'Are you sure to remove this resource from the project?',
      delete: 'Delete',
      edit: 'Edit',
    },
  },
  knowledgeBase: {
    directory: {
      canvasCount: '{{count}} canvases',
      resourceCount: '{{count}} resources',
      resourcesSearchPlaceholder: 'Search Resources...',
      canvasesSearchPlaceholder: 'Search Canvases...',
      conversationsSearchPlaceholder: 'Search Conversations...',
    },
    quickSearch: {
      suggest: 'Suggestions',
      new: 'Create New {{domain}}',
    },
    note: {
      connecting: 'Connecting...',
      newNote: 'Create New Canvas',
      noteCharsCount: '{{count}} characters',
      autoSaved: 'Saved',
      saving: 'Saving...',
      readOnly: 'Document is set to read-only mode',
      edit: 'Document is set to edit mode',
      serviceDisconnected: 'Service Disconnected',
      createNoteFailed: 'Failed to create document, please try again!',
      defaultTitle: 'Untitled',
    },
    canvas: {
      editor: {
        placeholder: {
          default: "Press 'space' for AI, '/' for commands",
          heading: 'Heading {{level}}',
        },
        toolbar: {
          quote: 'Quote Content to Ask',
          createMemo: 'Create Memo',
        },
      },
      leavePageModal: {
        title: 'Are you sure to leave the current canvas?',
        content:
          'AI is still writing, and you will lose the content if leaving the page. Are you sure to leave?',
      },
    },
    context: {
      contentSelector: 'Content Selector',
      contentSelectorAddSuccess: 'Add Success',
      contentSelectorIsEmpty: 'Please select text',
      clearSelector: 'Clear Selection',
      addContext: 'Add Context',
      createMemo: 'Create Memo',
      createAskAI: 'Ask AI',
      createAskAISuccess: 'Successfully created Ask AI node',
      clearContext: 'Clear',
      addToContext: 'Quote',
      resource: 'Resource',
      resources: 'Resource',
      canvas: 'Canvas',
      canvases: 'Canvas',
      projects: 'Project',
      project: 'Project',
      contentList: 'Content List',
      extensionWeblink: 'Web Link',
      extensionWeblinkSelection: 'Web Link Selection',
      documentSelection: 'Document Selection',
      resourceSelection: 'Resource Selection',
      documentCursorSelection: 'Document Cursor Selection',
      documentBeforeCursorSelection: 'Document Before Cursor Selection',
      documentAfterCursorSelection: 'Document After Cursor Selection',
      contextLimitTipTitle: 'Please adjust the context and try again',
      contextRequiredTip: 'Please select at least 1 {{type}}',
      contextLimitTip: '{{type}} is limit to {{limit}} , and you have selected {{currentCount}}.',
      popoverSelector: {
        webPlaceholder: 'Search canvases, resources, or projects...',
        extensionPlaceholder: 'Search web pages, canvases, resources, or projects...',
        footer: {
          navigate: 'Navigate',
          toggle: 'Toggle',
          done: 'Done',
          position: 'Position',
        },
      },
      contextFilter: {
        acitveBtnTitle: 'Context Filter',
        selectType: 'Select Type',
        limitCount: 'Limit Count',
        apply: 'Apply',
        contentListSelectedType: 'Selected Content Type',
        contentListSelectedTypeRequired: 'Please configure the selected content type',
        contentListLimit: 'Selected Content Count',
        filterConditions: 'Filter Conditions',
        reset: 'Reset',
        collapse: 'Collapse',
        result: 'Result',
        empty: 'No hit filter conditions',
      },
      alreadyAddedWithTitle: 'is already in context',
      addSuccessWithTitle: 'added to context',
      addToContextSuccess: 'Successfully added to context',
      untitled: 'Untitled',
      deleteSuccessWithTitle: 'Successfully deleted {{type}} node',
      panelColor: 'Panel Color',
      memoPlaceholder: 'Record your inspiration...',
      noContent: 'No content available to insert',
      noEditor: 'No opened document',
      noActiveDocument: 'No opened document',
      insertSuccess: 'Successfully inserted content',
      replaceSuccess: 'Successfully replaced content',
      createNoteSuccess: 'Successfully created new note',
    },
  },
  document: {
    share: 'Share Document',
    setReadOnly: 'Set to Read-Only',
    enableEdit: 'Enable Edit',
    shareLoading: 'Loading shared document...',
    notFound: 'Document Not Found',
    notFoundDesc: 'The document you are looking for does not exist or has been removed.',
    tableOfContents: 'Table of contents',
    sharing: 'Sharing document...',
    shareSuccess: 'Document shared successfully! Link copied to clipboard.',
    shareError: 'Failed to share document',
    noHeadings: 'No headings found',
  },
  driveFile: {
    sharing: 'Sharing file...',
    shareSuccess: 'File shared successfully! Link copied to clipboard.',
    shareLoading: 'Loading shared file...',
    notFound: 'File Not Found',
    notFoundDesc: 'The file you are looking for does not exist or has been removed.',
  },
  artifact: {
    generating: 'Generating',
    completed: 'Completed',
    openComponent: 'Click to open component',
    contentTitle: 'Canvas Content',
    loadingContent: 'Loading content...',
    thinking: 'Thinking...',
    loading: 'Loading code artifact...',
    componentNotFound: 'Code artifact does not exist',
    svg: {
      downloadAsSvg: 'Download as SVG',
      downloadAsPng: 'Download as PNG',
      copyToClipboard: 'Copy PNG to Clipboard',
      downloadStarted: 'Starting download...',
      downloadSuccess: 'Downloaded successfully',
      downloadError:
        'Download failed! The artifact does not contain SVG content. Please select the correct display type or verify the completeness of the source file code.',
      copyStarted: 'Starting to copy...',
      copySuccess: 'Copied to clipboard',
      copyError: 'Failed to copy',
    },
  },
  resourceType: {
    weblink: 'Web Link',
    text: 'Pasted Text',
    file: 'File',
  },
  canvas: {
    emptyText: 'Double-click canvas to open menu',
    shareNotFound: 'Canvas Not Found',
    shareNotFoundHint:
      "The shared canvas you're trying to access could not be found. It might have been deleted or the link may be incorrect.",
    nodeTypes: {
      document: 'Document',
      resource: 'Resource',
      skillResponse: 'Skill Response',
      memo: 'Memo',
      skill: 'Skill',
      image: 'Image',
      codeArtifact: 'Code Artifact',
      website: 'Website',
      mindMap: 'Mind Map',
      group: 'Group',
      mediaSkill: 'Media Skill',
      mediaSkillResponse: 'Media Skill Response',
      video: 'Video',
      audio: 'Audio',
      start: 'User Input',
      agent: 'Agent',
      documentSelection: 'Document Selection',
      resourceSelection: 'Resource Selection',
      skillResponseSelection: 'Skill Response Selection',
      extensionWeblinkSelection: 'Extension Web Link Selection',
      documentCursorSelection: 'Document Cursor Selection',
      documentBeforeCursorSelection: 'Document Before Cursor Selection',
      documentAfterCursorSelection: 'Document After Cursor Selection',
    },
    presetScenarios: {
      title: 'Preset Scenarios',
      generatePPT: 'Generate PPT',
      generatePPTDesc: 'Create professional presentation slides',
      generatePPTQuery: 'Please use HTML format to create a professional PPT about [topic]',
      generateLanding: 'Generate Landing Page',
      generateLandingDesc: 'Create a marketing landing page',
      generateLandingQuery:
        'Please use HTML format to create a marketing landing page for [product/service]',
      generateXHS: 'Generate Twitter Card',
      generateXHSDesc: 'Create Twitter content card',
      generateXHSQuery: 'Please use HTML format to create a Twitter content card about [topic]',
      generateMediaContent: 'Generate Media Content',
      generateMediaContentDesc: 'Create compelling media content',
      generateMediaContentQuery: 'Please create media content about [topic]',
    },
    export: {
      success: 'Image exported successfully',
      error: 'Failed to export image',
      noNodes: 'Canvas is empty, cannot export image',
    },
    launchpad: {
      placeholder: 'Describe needs...',
      chatInputPlaceholder: 'Enter task description, Agent will generate reusable workflows',
      commonChatInputPlaceholder:
        'Enter task, press @ to select user input, tools, files, and agents.',
      actionIsRunning: 'Current action is running, please wait for it to complete',
    },
    contextMenu: {
      createGroup: 'Create Group',
      enableClickPreview: 'Enable Click Preview',
      disableClickPreview: 'Disable Click Preview',
      toggleClickPreviewDescription:
        'Whether to display the preview card when clicking on a node in the canvas.',
      hideLaunchpad: 'Hide Ask AI',
      showLaunchpad: 'Show Ask AI',
      toggleLaunchpadDescription: 'Whether to display the AI input box.',
      hideEdges: 'Hide Edges',
      showEdges: 'Show Edges',
      toggleEdgeDescription: 'Whether to display the edges when clicking on a node in the canvas.',
      toggleNodeSizeMode: 'Toggle Node Size Mode',
      toggleNodeSizeModeDescription:
        'Toggle node size mode, compact mode has smaller node spacing, adaptive mode has node spacing that adjusts automatically according to the canvas size.',
      compactMode: 'Compact Mode',
      adaptiveMode: 'Adaptive Mode',
      enableAutoLayout: 'Enable Auto Layout',
      disableAutoLayout: 'Disable Auto Layout',
      toggleAutoLayoutDescription: 'Whether to enable auto layout when creating a new node.',
      enableHoverCard: 'Enable Hover Guide',
      disableHoverCard: 'Disable Hover Guide',
      toggleHoverCardDescription:
        'Toggle hover guide feature that shows additional information and tutorials when hovering over items',
    },
    toolbar: {
      searchNode: 'Search Node',
      searchNodeDescription: 'Search nodes in the canvas, click to locate.',
      enablePointerMode: 'Enable Pointer Mode',
      disablePointerMode: 'Disable Pointer Mode',
      deleteCanvas: 'Delete Workflow',
      importResource: 'Import Resource',
      importResourceDescription:
        'Import resources through online search, manual addition of web links or text to add writing materials for consumption in the canvas.',
      addResource: 'Add Resource',
      addResourceDescription:
        'Import or upload any content (such as web pages, files, images, etc.) from external sources, which can be consumed and used in multiple canvases as needed.',
      addSkill: 'Add Skill',
      addTool: 'Add Tool',
      autoLayout: 'Auto Layout',
      autoName: 'Auto Name',
      askAI: 'Add Custom Agent',
      mediaGenerate: 'Media Generate',
      askAIDescription:
        'Ask AI, select context or switch skill, input requirements, get help with writing, reading comprehension, or question answering',
      createMemo: 'Add Memo',
      createMemoDescription: 'Create a memo for quick recording ideas, supporting Markdown format',
      addMemo: 'Add Memo',
      createDocument: 'Create Document',
      createDocumentDescription: 'Create a document for writing.',
      createCodeArtifact: 'Create Code Artifact',
      createCodeArtifactDescription: 'Create an empty code artifact to write your code',
      addDocument: 'Add Document',
      addDocumentDescription:
        'User-created content in Refly, created through AI writing or manually creating a new document, which can be searched and answered through the AI knowledge base.',
      addHighlight: 'Add Highlight',
      hidePreview: 'Hide Node Preview',
      showPreview: 'Show Node Preview',
      togglePreviewDescription:
        'When there is a preview card, show or hide the preview card on the right side of the canvas.',
      hideEdges: 'Hide Connections',
      showEdges: 'Show Connections',
      toggleEdgeTitle: 'Toggle Edge State',
      hideMaxRatio: 'Cancel Preview Max Ratio',
      showMaxRatio: 'Use Preview Max Ratio',
      toggleMaxRatioDescription:
        'When there is a preview card, control the size of the preview card displayed in the canvas.',
      hideLaunchpad: 'Hide Ask AI',
      showLaunchpad: 'Show Ask AI',
      toggleLaunchpadTitle: 'Toggle Ask AI Display State',
      editTitle: 'Edit Canvas Title',
      editTitlePlaceholder: 'Please enter the title of the canvas',
      rename: 'Rename',
      duplicate: 'Duplicate',
      syncingChanges: 'Syncing Changes',
      synced: 'Last synced at {{time}}',
      mouse: 'Mouse Mode',
      touchpad: 'Touchpad Mode',
      tooltip: {
        undo: 'Undo',
        redo: 'Redo',
        zoom: 'Zoom Percentage',
        initializeWorkflow: 'Run Workflow',
        initializeWorkflowInNewCanvas: 'Initialize Workflow in New Canvas',
        zoomReset: 'Reset',
        zoomIn: 'Zoom In',
        zoomOut: 'Zoom Out',
        fitView: 'Fit View',
        layout: 'Auto Layout',
        mode: 'Interaction Mode',
        help: 'Help & Documentation',
        resourceLibrary: 'Files',
        toolDependencies: 'Tool Dependencies',
        duplicateWorkflow: 'Duplicate Workflow',
        addUserInput: 'User Input',
        addNote: 'Note',
        previewWorkflowRun: 'Preview',
        addAgent: 'Agent',
      },
      openDocs: 'Documentation',
      openTour: 'Feature Highlights',
      openGuide: 'Interactive Guide',
      openSettings: 'Settings Wizard',
      interativeTutorialLoading: 'Interactive tutorial loading... Estimated 3~6 seconds',
      interativeTutorial: 'Refly Product Interactive Guide',
      videoLoading: 'Video loading...',
      enterFullscreen: 'Enter Fullscreen',
      exitFullscreen: 'Exit Fullscreen',
      completeTutorial: 'Complete Tutorial',
      deleteCanvasConfirm: 'Confirm to delete canvas {{title}} permanently?',
      deleteCanvasFile: 'Delete resources and documents in the workflow',
      hideTemplates: 'Hide Templates',
      showTemplates: 'Show Templates',
      exportImage: 'Export Image',
      exportCanvas: 'Export Canvas',
      slideshow: 'Slideshow',
      copyLink: 'Copy Link',
      createWebsite: 'Create Website Node',
      createWebsiteDescription: 'Create a website node to embed a website in your canvas',
      createMindMap: 'Create Mind Map Node',
      createMindMapDescription: 'Create a mind map node to embed a mind map in your canvas',
      removeFromProject: 'Remove from Project',
      openResourcesPanel: 'Open Resource Panel',
      closeResourcesPanel: 'Close Panel',
      modeChangeSuccess: {
        mouse: 'Switched to mouse mode',
        touchpad: 'Switched to touchpad mode',
      },
      backHome: 'Back Home',
      backDashboard: 'Back to Dashboard',
    },
    workflow: {
      variables: {
        addTitle: 'Add User Input',
        editTitle: 'Edit User Input',
        addVariableTitle: 'Add {{type}} User Input',
        editVariableTitle: 'Edit {{type}} User Input',
        name: 'Name',
        value: 'Content',
        description: 'Description (Optional)',
        namePlaceholder: 'e.g., userName',
        valuePlaceholder: 'e.g., John Doe',
        descriptionPlaceholder: 'e.g., User name for the workflow',
        nameRequired: 'Name is required',
        valueRequired: 'Content is required',
        namePattern: 'Invalid name format',
        duplicateName: 'Name already exists',
        loadError: 'Failed to load user inputs',
        saveError: 'Failed to save user inputs',
        saveSuccess: 'user input saved successfully',
        updateSuccess: 'user input updated successfully',
        deleteUserInput: 'Delete {{value}}',
        deleteConfirm:
          'Deleting this input will remove it from all connected agents and may affect their performance. Proceed with deletion?',
        empty: 'No user inputs defined',
        addVariable: 'Add',
        variableType: 'User Input Type',
        required: 'Required',
        multiple: 'Multiple Settings',
        multipleSelect: 'Multiple Select',
        singleSelect: 'Single Select',
        resourceAcceptType: 'Supported Types',
        resourceTypesRequired: 'Please select supported resource types',
        selectResourceTypes: 'Select resource types',
        resourceType: {
          document: 'Document',
          image: 'Image',
          audio: 'Audio',
          video: 'Video',
        },
        resourceValuePlaceholder: 'Select resource',
        variableTypeOptions: {
          string: 'Text',
          resource: 'File',
          option: 'Option',
        },
        string: 'Text Information',
        resource: 'Add Attachment',
        option: 'Add Option',
        selectMode: 'Selection Mode',
        options: 'Options',
        optionsRequired: 'At least one option is required',
        optionsEmpty: 'Options cannot be empty',
        addOption: 'Add Option',
        maxOptions: 'Maximum {{max}} options allowed',
        selectOptions: 'Select options',
        clickToEdit: 'Click to edit',
        deleteSuccess: 'Variable deleted successfully',
        inputPlaceholder: 'Please enter',
        selectPlaceholder: 'Please select',
        uploadPlaceholder: 'Please upload file',
        duplicateOption: 'Option values cannot be duplicated',
        upload: 'Upload Files',
        typeLimitReached:
          '{{type}} type variables have reached the maximum limit and cannot be submitted.',
        fileRequired: 'Please upload one file',
        selectValuePlaceholder: 'Please select an option above',
        startNode: 'Start Node',
        resourceLibrary: 'Resource Library',
        viewAndEdit: 'View',
        acceptResourceTypes: 'Accept Resource Types: ',
        fileSizeLimit: '{{type}}(less than {{size}}M)',
        unsupportedFileType: 'Unsupported file type: {{type}}',
        replaceFile: 'Replace File',
        duplicateFileName: 'File with the same name already exists, please replace the file',
        tooManyFiles: 'Maximum {{max}} file allowed',
        optionSelectedDeleteTooltip:
          'The option has been selected as the user input content, cannot be deleted temporarily',
        optionSelectedEditTooltip:
          'The option has been selected as the user input content, cannot be edited temporarily',
        stringAdd: 'Add',
        stringAddDescription: 'e.g., location, time, etc.',
        resourceAdd: 'Upload',
        resourceAddDescription: 'e.g., image, document, video, audio',
        optionAdd: 'Option',
        optionAddDescription: 'e.g., single select, multiple select',
      },
      userInput: 'User Input',
      run: {
        title: 'Run Workflow',
        run: 'Run',
        startRunning: 'Your workflow starts running',
        executing: 'Running',
        remix: 'Remix',
        copyWorkflow: 'Remix Workflow',
        copyShareLink: 'Copy Share Link',
        shareLinkCopied: 'Share link copied to clipboard',
        shareLinkCopyFailed: 'Failed to copy share link',
        emptyTitle: 'No variables defined',
        emptyDescription: 'Click run, the workflow will be executed once if continued.',
        completed: 'Workflow execution completed successfully',
        failed: 'Workflow execution failed',
        error: 'Error monitoring workflow execution',
        validationError: 'Please fill in all required fields before running the workflow',
        toolsGuide: 'Click "Run" to experience, the green parts support editing input content',
        nodeStatus: {
          waiting: 'Waiting',
          executing: 'Running',
          finish: 'Completed',
          failed: 'Failed',
        },
        creditUsage: 'Estimated usage {{count}} credits',
        abort: {
          confirmTitle: 'Stop Workflow Execution',
          main: 'Are you sure you want to stop this workflow?',
          note: 'The workflow will halt immediately. Completed steps will remain saved, and credits already consumed will not be refunded.',
          confirm: 'Confirm Stop',
          abortButton: 'Stop',
          success: 'The workflow has been stopped successfully.',
          failed: 'Failed to stop workflow',
        },
      },
    },
    connectionTimeout: {
      title: 'Connection Timeout',
      extra: 'We have some issues connecting to the Refly server, please refresh and try again.',
    },
    action: {
      nodeAlreadyExists: 'The {{type}} with the same entity already exists',
      deleteSuccess: 'Workflow deleted successfully',
      duplicateSuccess: 'Canvas duplicated successfully',
      nodeLimitReached:
        'Canvas has reached the maximum limit of {{max}} nodes. Please remove some nodes before adding new ones.',
      approachingNodeLimit:
        'Canvas is approaching the node limit ({{current}}/{{max}}). Consider removing unnecessary nodes.',
      initializationFailed: 'Canvas initialization failed, please try again later.',
    },
    skill: {
      askAI: 'AI Common Question Answer',
      askAIDescription:
        'Ask AI, get help with writing, reading comprehension, or question answering',
      switchSkillTooltip:
        'Use Ctrl + / in the input box to switch skill, default skill is Ask AI, you can switch to other skills, like web search, etc.',
      switchSkillTooltipMac:
        'Use ⌘ + / in the input box to switch skill, default skill is Ask AI, you can switch to other skills, like web search, etc.',
    },
    skillResponse: {
      executionFailed: 'Execution failed, click to retry',
      skillCompleted: 'Skill Completed',
      stepCompleted: 'Step Completed',
      rerunSingle: 'Rerun This Node',
      runSingle: 'Run This Node',
      stopSingle: 'Stop',
      rerunFromHere: 'Run From Here',
      stopConfirmModal: {
        title: 'Stop Agent Task?',
        main: 'Are you sure you want to stop this agent task?',
        note: 'Any progress made so far will be saved, and credits already consumed will not be refunded.',
        cancel: 'Cancel',
        confirm: 'Confirm Stop',
      },
      stopSuccess: 'The agent has been stopped successfully.',
      stepTitle: 'Step {{index}}',
      aiThinking: 'AI is thinking ...',
      sourcesCnt: 'Total of {{count}} source(s) found',
      executing: 'Skill is executing, please wait...',
      startRunning: 'Skill is running...',
      startRerun: 'Skill is rerunning...',
      startPilotRecovery: 'Starting pilot recovery...',
      pilotRecoveryStarted: 'Pilot recovery started successfully',
      pilotRecoveryFailed: 'Pilot recovery failed',
      resultNotFound: 'Sorry, the execution result seems to be lost.',
      reasoningContent: 'Refly Thinking Process',
      shareLoading: 'Loading shared skill response...',
      notFound: 'Skill Response Not Found',
      notFoundDesc: 'The skill response you are looking for does not exist or has been removed.',
      generating: 'Generating content...',
      shareSuccess: 'Skill response shared successfully! Link copied to clipboard.',
      shareError: 'Failed to share skill response',
      error: {
        defaultTitle: 'Skill execution failed',
        description: '[{{errCode}}] {{errMsg}} Original error: {{rawError}}',
        networkError: 'If the problem persists, please check your internet connection or VPN',
      },
      creditInsufficient: {
        title: 'Insufficient Credits',
        description:
          "Your current subscription plan is {{membershipLevel}}, and your credits are insufficient. Upgrade your plan to continue using Refly's full features.",
        upgradeButton: 'Upgrade Now',
      },
      modelCallFailure: {
        title: 'Execution Failed',
        description: 'Model call failed, please try again later or switch to another model.',
        retryButton: 'Retry',
      },
      toolCallFailure: {
        title: 'Execution Failed',
        description: 'Tool call exception, please try again later or switch to another tool.',
        retryButton: 'Retry',
      },
      multimodalFailure: {
        title: 'Execution Failed',
        description: 'Generation failed, please try again later or switch to another model.',
        retryButton: 'Retry',
      },
      userAbort: {
        title: 'Task Stopped',
        description: 'This task has been manually terminated.',
      },
      workflowFailure: {
        title: 'Execution Failed',
        description:
          'Workflow execution interrupted, please try again later or check node configuration.',
        retryButton: 'Retry Node',
        checkButton: 'Check Node',
      },
      config: {
        input: 'Input: ',
        model: 'Model: ',
        tool: 'Tool: ',
        file: 'File: ',
        agent: 'Agent: ',
      },
      status: {
        waiting: 'Waiting',
        executing: 'Running',
        finish: 'Success',
        failed: 'Failed',
      },
    },
    chatHistory: {
      alreadyAdded: 'Already added to chat history',
      addSuccess: 'Successfully added to chat history',
    },
    contextList: {
      placeholder: 'Search {{domain}}...',
    },
    newCanvas: {
      modalTitle: 'New Canvas',
      titlePlaceholder: 'Please enter the title of the canvas',
      descriptionPlaceholder: 'Please enter the description of the canvas',
    },
    conflict: {
      title: 'Canvas Conflict',
      content:
        'It seems that the canvas has been modified by other browsers or devices. Please choose to keep local version or remote version.',
      local: 'Keep local version (Last modified: {{time}})',
      remote: 'Keep remote version (Last modified: {{time}})',
    },
    syncFailure: {
      title: 'Canvas Sync Failed',
      content:
        'There seems to be some issues syncing the canvas content with the server. Please check your internet connection or try again later.',
      reload: 'Reload',
    },
    contextSelector: {
      placeholder: 'Search nodes...',
    },
    contextManager: {
      nodeNotFound: 'Source node not found or has been deleted. Please add it to the canvas first.',
    },
    nodeActions: {
      extractVariables: 'Extract variables',
      dragToConnect: 'Drag to Connect',
      clickToAdd: 'Click to Add',
      duplicateMemo: 'Duplicate Memo',
      createMemo: 'Create Empty Memo',
      createMemoDescription:
        'Create an empty memo for quick recording ideas, supporting Markdown format',
      copy: 'Copy Node Content',
      copyDescription: 'Copy the content of the selected node to the clipboard in Markdown format',
      createDocumentDescription: 'Create a document for writing',
      askAI: 'Add Custom Agent',
      askAIDescription:
        'Ask AI, select context or switch skill, input requirements, get help with writing, reading comprehension, or question answering',
      cloneAskAI: 'Clone Ask AI',
      cloneAskAIDescription:
        'Clone the existing AI answer node and create a new skill node for comparison experiments',
      batchRun: 'Batch Run',
      batchRunDescription: 'Run multiple selected skill nodes at the same time',
      addToContext: 'Add to Context',
      addToContextDescription:
        'Add temporary knowledge support for single queries to improve AI answer accuracy',
      processingVector: 'Processing Vector',
      run: 'Run',
      runDescription: 'Run the selected skill node',
      rerun: 'Rerun',
      rerunDescription: 'Use the current parameter settings to re-execute the AI node',
      preview: 'Open Preview',
      previewDescription:
        'Display the complete content of the node in the preview panel on the right side of the canvas',
      fullScreen: 'Full Screen Preview',
      fullScreenDescription: 'Preview the node content in full screen mode',
      insertToDoc: 'Insert to Document',
      insertToDocDescription:
        'Integrate the node content into the document, supporting iterative writing',
      askFollowUp: 'Ask Follow-up',
      askFollowUpDescription: 'Continue to ask based on the current node content',
      nextStepSuggestions: 'Next Step Suggestions',
      nextStepSuggestionsDescription:
        'Based on the current node content, AI provides suggestions for the next steps.',
      title: 'Title',
      followUpQuestion: 'Follow-up',
      moreOptions: 'More Options',
      delete: 'Delete Node',
      deleteDescription: 'Delete the selected node',
      duplicate: 'Duplicate Node',
      duplicateDescription: 'Create a copy of the selected node with the same configuration',
      ungroup: 'Ungroup',
      ungroupDescription: 'Cancel the grouping of the selected node',
      group: 'Create Group',
      groupDescription: 'Create a group based on the selected node',
      deleteAll: 'Delete',
      deleteAllDescription: 'Delete all nodes in the canvas',
      compactMode: 'Compact Mode',
      compactModeDescription: 'Compact mode, smaller node spacing',
      adaptiveMode: 'Adaptive Mode',
      adaptiveModeDescription:
        'Adaptive mode, node spacing automatically adjusts according to the canvas size',
      selectCluster: 'Select Sub Nodes',
      selectClusterDescription: 'Select all sub-nodes of the selected node',
      groupCluster: 'Group Sub Nodes',
      groupClusterDescription: 'Create a group based on all sub-nodes of the selected node',
      layoutCluster: 'Layout Sub Nodes',
      layoutClusterDescription: 'Automatically layout all sub-nodes of the selected node',
      centerNode: 'Center Node Position',
      centerNodeDescription: 'Center the selected node on the canvas',
      createVariable: 'Convert to variable',
      alreadyCreated: 'Remove from variables',
      editQuery: 'Edit Query',
      editQueryDescription: 'Edit the query of the selected node',
      duplicateDocument: 'Duplicate Document',
      duplicateDocumentDescription: 'Create a duplicate of the selected node document',
      deleteResource: 'Delete Resource',
      deleteResourceDescription: 'Delete the resource from the library and all canvases',
      resourceDeleteConfirm: 'Are you sure to delete resource [{{title}}]?',
      deleteDocument: 'Delete Document',
      deleteDocumentDescription: 'Delete the document from the library and all canvases',
      documentDeleteConfirm: 'Are you sure to delete document [{{title}}]?',
      downloadFile: 'Download File',
      editGroupNamePlaceholder: 'Please enter the group name',
      addToSlideshow: 'Add to Slideshow',
      upgrade: 'Upgrade Plan',
      more: 'More Options',
      createAsDocument: 'Create as Document',
      download: 'Download',
      downloadSuccess: 'Download Success',
      downloadError: 'Download Error',
      downloadDescription: 'Download node content to local file',
      runWorkflow: 'Run Workflow from Current Node',
      existWorkflowRunning: 'Workflow is running',
      selectToEdit: 'Select to edit in editor',
    },
    download: {
      error: {
        noImageUrl: 'No image URL found',
        noVideoUrl: 'No video URL found',
        noAudioUrl: 'No audio URL found',
        noDocumentContent: 'No document content found',
        noCodeContent: 'No code content found',
        noSkillContent: 'No skill response content found',
        noMemoContent: 'No memo content found',
        noResourceContent: 'No resource content found',
        noWebsiteUrl: 'No website URL found',
        unsupportedType: 'Unsupported node type: {{nodeType}}',
        general: 'Download failed. Please try again.',
      },
      success: {
        image: 'Image downloaded successfully: {{fileName}}',
        video: 'Video downloaded successfully: {{fileName}}',
        audio: 'Audio downloaded successfully: {{fileName}}',
        document: 'Document downloaded successfully: {{fileName}}',
        code: 'Code downloaded successfully: {{fileName}}',
        skillResponse: 'Skill response downloaded successfully: {{fileName}}',
        memo: 'Memo downloaded successfully: {{fileName}}',
        resource: 'Resource downloaded successfully: {{fileName}}',
        website: 'Website URL downloaded successfully: {{fileName}}',
      },
    },
    copy: {
      error: {
        noImageUrl: 'No image URL found',
        noVideoUrl: 'No video URL found',
        noAudioUrl: 'No audio URL found',
        noDocumentContent: 'No document content found',
        noCodeContent: 'No code content found',
        noSkillContent: 'No skill response content found',
        noMemoContent: 'No memo content found',
        noResourceContent: 'No resource content found',
        noWebsiteUrl: 'No website URL found',
        unsupportedType: 'Unsupported node type: {{nodeType}}',
        general: 'Copy failed. Please try again.',
      },
      success: {
        image: 'Image URL copied to clipboard',
        video: 'Video URL copied to clipboard',
        audio: 'Audio URL copied to clipboard',
        document: 'Document content copied to clipboard',
        code: 'Code content copied to clipboard',
        skillResponse: 'Skill response copied to clipboard',
        memo: 'Memo content copied to clipboard',
        resource: 'Resource content copied to clipboard',
        website: 'Website URL copied to clipboard',
      },
    },
    share: {
      error: {
        noImageUrl: 'No image URL found',
        noVideoUrl: 'No video URL found',
        noAudioUrl: 'No audio URL found',
        noEntityId: 'No entity ID found',
        noMemoContent: 'No memo content found',
        noWebsiteUrl: 'No website URL found',
        unsupportedType: 'Unsupported node type: {{nodeType}}',
        general: 'Share failed. Please try again.',
        document: 'Failed to share document',
        code: 'Failed to share code artifact',
        skillResponse: 'Failed to share skill response',
        resource: 'Failed to share resource',
      },
      success: {
        image: 'Image URL copied to clipboard',
        video: 'Video URL copied to clipboard',
        audio: 'Audio URL copied to clipboard',
        document: 'Document shared successfully! Link copied to clipboard.',
        code: 'Code artifact shared successfully! Link copied to clipboard.',
        skillResponse: 'Skill response shared successfully! Link copied to clipboard.',
        memo: 'Memo content copied to clipboard',
        resource: 'Resource shared successfully! Link copied to clipboard.',
        website: 'Website URL copied to clipboard',
      },
      loading: 'Creating share...',
    },
    nodeStatus: {
      isCreatingDocument: 'Creating Document...',
      createDocument: 'Create Document',
    },
    nodePreview: {
      pin: 'Pin',
      unpin: 'Unpin',
      document: {
        contentPreview: 'Loading document content...',
        noContentPreview: 'No content preview available...',
      },
      resource: {
        contentPreview: 'Loading resource content...',
        noContentPreview: 'No content preview available...',
      },
      skillResponse: {
        contentPreview: 'Loading skill response content...',
        noContentPreview: 'No content preview available...',
      },
    },
    operationMode: {
      title: 'Canvas Operation Mode',
      mouse: 'Mouse-Friendly Mode',
      mouseDesc: 'Left-click drag to pan, scroll wheel to zoom',
      touchpad: 'Touchpad-Friendly Mode',
      touchpadDesc: 'Two-finger pan to move, pinch to zoom',
    },
    nodes: {
      website: {
        defaultTitle: 'Website',
        addWebsite: 'Add Website',
        websiteUrl: 'Website URL',
        urlRequired: 'Please enter a website URL',
        preview: 'Preview',
        save: 'Save and View Website',
        copyUrl: 'Copy URL',
        urlCopied: 'URL copied to clipboard',
        copyFailed: 'Failed to copy URL',
        openInNewTab: 'Open in new tab',
        edit: 'Edit',
        noUrlProvided: 'No website URL provided',
      },
      mindMap: {
        defaultTitle: 'Mind Map',
        edit: 'Edit Mind Map',
        preview: 'Preview',
        jsonData: 'Mind Map JSON Data',
        jsonRequired: 'Please enter valid JSON data',
        save: 'Save and View Mind Map',
        export: 'Export Mind Map',
        clickToView: 'Click to view mind map',
        compactMode: 'Mind map in compact mode',
        nodesCount: '{{count}} nodes',
        invalidJson: 'Invalid JSON structure',
        exportFailed: 'Failed to export mind map',
        addChild: 'Add Child Card',
        addSibling: 'Add Sibling Card',
        delete: 'Delete Card',
        invalidMindMapData: 'Invalid mind map data format. Please check your JSON structure.',
      },
      mediaSkill: {
        prompt: 'Please enter the content to generate',
        mediaType: 'Media Type',
        image: 'Image',
        video: 'Video',
        audio: 'Audio',
        media: 'Media',
        mediaGenerate: 'Media Generate',
        imageGenerate: 'Generate Image',
        videoGenerate: 'Generate Video',
        audioGenerate: 'Generate Audio',
        imagePlaceholder: 'Describe the image you want to generate...',
        videoPlaceholder: 'Describe the video you want to generate...',
        audioPlaceholder: 'Describe the audio you want to generate...',
        defaultPlaceholder: 'Describe what you want to generate...',
        generating: 'Generating {{type}}...',
        failed: 'Generation failed',
      },
    },
    reflyPilot: {
      title: 'Ask AI',
      newConversation: 'New conversation',
      clearConversation: 'Clear conversation',
      welcome: {
        title: 'Hello, {{name}}!',
        subtitle: 'What can I help you with today?',
        suggestions: [
          'Summarize this article',
          'Generate ideas for my project',
          'Help me write a blog post',
          'Explain this concept',
          'Draft an email for me',
        ],
      },
    },
    resourceLibrary: {
      title: 'Files',
      empty: 'No files',
      wideScreen: 'Wide Screen',
      exitWideScreen: 'Exit Wide Screen',
      searchPlaceholder: 'Search project resources',
      noSearchResults: 'No results found',
      myUploadsDescription: 'Uploaded resources will be displayed here',
      resultRecordDescription: 'Results will be displayed here',
      stepsRecordDescription: 'Steps will be displayed here',
      new: {
        document: 'New Document',
        resource: 'Import Files',
      },
      importResource: 'Import Resource',
      createDocument: 'Create Document',
      importFromKnowledgeBase: 'Import from Knowledge Base',
      importFromExtension: 'Import from Extension',
      download: {
        success: 'Downloaded successfully, please check your local files~',
        error: 'Download failed, please try again',
        invalidUrl: 'Download link is invalid',
      },
    },
    richChatInput: {
      actions: 'Actions',
      userInput: 'User Input',
      noUserInput: 'No user input',
      tools: 'Tools',
      noTools: 'No tools',
      untitledTool: 'Untitled Tool',
      files: 'Files',
      noFiles: 'No files',
      untitledFile: 'Untitled File',
      agents: 'Agents',
      noAgents: 'No agents',
      untitledAgent: 'Agent',
      hoverToViewVariables: 'Hover over categories to view variables',
      loadingEditor: 'Loading editor...',
      loadingUserInput: 'Loading user input...',
      defaultPlaceholder: 'Describe what you want to generate...',
      createUserInput: 'Create user input "{{userInputName}}"',
      unauthorized: 'Authorize',
      oauthSuccess: 'Tool authorized successfully',
      oauthFailed: 'Failed to authorize tool',
      oauthTimeout: 'Authorization timeout, please try again',
      authorizing: 'Authorizing...',
    },
    toolsDepencency: {
      title: 'Tool Dependencies',
      description: 'Tool dependencies will be displayed here',
      uninstalledToolsCount: '{{count}} tools not installed',
      searchPlaceholder: 'Search tools',
      uninstalled: 'Uninstalled',
      installed: 'Installed',
      all: 'All',
      noSearchResults: 'No search results',
      noToolsDependency: 'No tools dependency',
      descriptionPlaceholder: 'Tool description, up to 20 Chinese characters',
      referencedNodes: 'Referenced nodes',
      more: 'More',
      goToInstall: 'Go to Install',
    },
  },
  resource: {
    multilingualSearch: {
      title: 'Search the world in your own language',
      placeholder: 'Search anything',
      searchLabel: 'Search Language: ',
      displayLabel: 'Display Language: ',
      selectSearchLanguages: 'Select Search Languages',
      selectDisplayLanguage: 'Select Display Language',
      enableRerank: 'Enable Rerank',
      searchLocales: 'Search Language',
      displayLocale: 'Display Language',
      searchResults: 'Search Results',
      search: 'Search',
      noResults: 'No results found',
      progress: {
        title: 'Search Process',
        summary: '{{count}} results ({{duration}}ms)',
        duration: '{{duration}}ms',
      },
      steps: {
        processing: 'Processing...',
        rewriteQuery: {
          title: 'Rewrite Query',
          rewrittenQueries: 'Rewritten Queries',
          outputLocale: 'Output Locale',
          searchLocales: 'Search Locales',
        },
        translateQuery: {
          title: 'Translate Query',
        },
        webSearch: {
          title: 'Web Search',
          results: 'Results',
          searchLocales: 'Search Locales',
        },
        translateResults: {
          title: 'Translate Results',
          results: 'Results',
          searchLocales: 'Search Locales',
        },
        rerank: {
          title: 'Rerank Results',
          finalResults: 'Final Results',
        },
        finish: {
          title: 'Complete',
        },
      },
    },
    import: {
      title: 'Import Files',
      fromWebSearch: 'Web Search',
      fromFile: 'Upload File',
      fromImage: 'Upload Image',
      dragOrClick: 'Click or Drag files to this area to upload',
      unsupportedFileType: 'Please upload the specified type of file',
      supportedFiles: 'Supported Files: {{formats}}.',
      fileUploadLimit: 'Limit for each file: {{size}}',
      unlockUploadLimit: 'Unlock upload limit',
      fileTooLarge: 'File size cannot exceed {{size}}',
      fileParsingUsage:
        'Advanced file parsing (including PDF): {{used}}/{{limit}} pages used today',
      fromWeblink: 'Paste Weblink',
      selectAll: 'Select All',
      webLinkPlaceholer: 'Enter or paste valid web links, one per line...',
      fromText: 'Copy Text',
      linkFormatError: 'Please enter a valid web link starting with http or https',
      emptyLink: "You haven't added any links yet!",
      waitingList: 'Pending Files',
      linkCount: 'Total {{count}} links',
      fileCount: 'Total {{count}} files',
      addToWaiting: 'Add to Pending',
      addedToWaitingList: 'Added {{count}} search results to pending list',
      selectedCount: 'Selected {{count}} search results',
      noPendingFiles: 'No pending files',
      uploading: 'Uploading',
      saveTo: 'Save to',
      scrapeError: 'Scraping failed',
      integration: 'Integration',
      emptyText: 'Title and text content cannot be empty!',
      textTitlePlaceholder: 'Enter title',
      textUrlPlaceholder: 'Enter or paste web link',
      textContentPlaceholder: 'Enter or paste text',
      saveResourceSuccess: {
        prefix: 'Save successfully, click',
        link: 'link',
        suffix: 'to view',
      },
      saveResourceFailed: 'Save failed, please try to save again',
      isSaving: 'Saving...',
      storageLimited: 'Storage quota exceeded',
      storagePartialLimited: 'Insufficient storage: only {{count}} files can be saved',
      upgrade: 'Upgrade Now',
      fromExtension: 'Browser Extension',
      extensionTitle: 'Save Web Content with One Click',
      extensionDescription:
        'Based on the free canvas creation platform, you can easily save web content to your canvas through multi-threaded conversations, knowledge base integration, context memory, intelligent search, and AI document editing.',
      downloadExtension: 'Download Extension',
      viewDocs: 'View Documentation',
      recommendedPlatforms: 'Recommended to use on the following platforms',
      selectProject: 'Select Project',
      emptyImage: 'Please select at least one image',
      imageCount: 'Images: {{count}}',
      supportedImages: 'Supported image formats: {{formats}}',
    },
    wait_parse: 'Parsing',
    wait_parse_tip: 'The file has not been parsed yet, can not be viewed',
    parse_failed: 'Parse Failed',
    wait_index: 'Memorizing',
    wait_index_tip:
      'The resource is temporarily not ready for AI search and needs to wait for memorization to complete',
    index_failed: 'Memorization Failed',
    index_failed_tip: 'Click to retry',
    finish: 'Finished',
    clickToPreview: 'Click to Preview Details',
    pageLimitExceeded:
      'This file has {{numPages}} pages, which exceeds the daily page limit for advanced file parsing ({{used}}/{{limit}} pages used today).',
    unknownError: 'Unknown error, please try again later',
  },
  resourceDetail: {
    back: 'All Resources',
    directory: {
      baseInfo: 'Basic Information',
      techInfo: 'Technical Information',
      addTime: 'Add Time',
      updateTime: 'Update Time',
      source: 'Source',
      storageSize: 'Storage Size',
      vectorSize: 'Vector Size',
      indexStatus: 'Index Status',
      referenced: '{{count}} Referenced',
      weblink: 'Web Link',
      text: 'Text',
    },
  },
  codeArtifact: {
    fix: {
      title: 'Fix Code Error',
      query: 'Help me optimize this code. I got the following error:\n\n{{errorMessage}}',
      tryToFix: 'Try to Fix',
      error: 'Error',
      errorConfig: 'Code Error Config',
      requestingFix: 'Requesting AI to fix the error...',
      closeErrorMessage: 'Close error message',
      copyErrorMessage: 'Copy error message',
      errorDismissed: 'Error message dismissed',
    },
    editor: {
      fontFamily: 'Font Family',
      fontSize: 'Font Size',
      fontLigatures: 'Font Ligatures',
      theme: 'Theme',
      loading: 'Loading editor...',
      useFallback: 'Use Text Editor',
      loadError: 'Failed to load editor',
      generatingContent: 'AI is generating content',
      generatingPlaceholder: 'Content is being generated...',
      fallbackMode: 'Simple Editor Mode',
      contentTruncated:
        'Showing only the last {{chars}} characters of {{total}} total. Full content will be displayed when generation completes.',
    },
    copySuccess: 'Code copied to clipboard',
    copyError: 'Failed to copy code',
    downloadSuccess: 'Downloaded {{fileName}}',
    downloadError: 'Failed to download file',
    refreshing: 'Refreshing preview...',
    creating: 'Creating code artifact...',
    loading: 'Loading code artifact...',
    sharing: 'Sharing code...',
    shareLoading: 'Loading shared code...',
    noCodeFound: 'No code content found to display',
    noSelection: 'No code artifact selected',
    shareSuccess: 'Share link copied to clipboard!',
    shareError: 'Failed to share code!',
    errorCopySuccess: 'Error message copied to clipboard',
    errorCopyFailed: 'Failed to copy error message',
    layout: {
      split: 'Split View',
      tabs: 'Tab View',
    },
    layoutChanged: {
      split: 'Changed to split view mode',
      tabs: 'Changed to tab view mode',
    },
    tabs: {
      preview: 'Preview',
      code: 'Code',
    },
    buttons: {
      refresh: 'Refresh',
      copy: 'Copy code',
      download: 'Download {{fileName}}',
      share: 'Share code artifact',
    },
    defaultTitle: 'Code Artifact',
  },
  agent: {
    configure: 'Input',
    lastRun: 'Output',
    noResult: 'Run to get results',
    editTitlePlaceholder: 'Enter title for the agent',
    config: {
      model: 'Model',
      modelDescription:
        'Select the AI model used when this agent runs. Different models vary in their abilities for understanding, generation, and tool usage.',
      prompt: 'Prompt',
      promptDescription:
        'Tell the agent what task to perform. You can reference inputs and other content using @ in the Prompt.',
      inputs: 'Inputs',
      inputsDescription:
        'User-provided information available to this agent. These typically come from the form fields filled in when running the workflow.',
      tools: 'Tools',
      toolsDescription:
        'External capabilities the agent can call, such as Gmail, Notion, and others.',
      files: 'Files',
      filesDescription:
        'Files the agent can read, such as images, documents, or other uploaded resources.',
      agents: 'Agents',
      agentsDescription: 'Use the output of other agents to help complete the task at this node.',
      addToolsAndContext: 'Add tools and context',
    },
  },
  loggedHomePage: {
    searchEverything: 'Search',
    quickSearch: {
      skills: 'Skills',
      canvas: 'Canvases',
      newCanvas: 'Create New Canvas',
      resource: 'Resources',
      newResource: 'Add Resource',
      document: 'Documents',
      newDocument: 'Create New Document',
      placeholderForHome: 'Search for canvases, documents, or resources...',
      placeholderForSkillExecute:
        'Enter the question you want to ask and execute the skill based on this question',
      placeholderForWeblink: 'Search {{domain}}...',
      home: {
        heading: 'Suggestions',
        askAI: 'Ask Knowledge Curator',
        showAll: 'View All {{heading}}',
      },
      basedOn: 'Based on',
      execute: 'content execution',
      skill: 'skill',
    },
    homePage: {
      searchPlaceholder: 'Search for Refly',
      selectedWeblink: {
        title: 'Ask a Question Based on the Selected Web Page:',
      },
      recommendQuickAction: {
        title: 'Recommended Quick Actions:',
        summary: {
          title: 'Summary',
          tip: {
            title: 'summary',
            current: 'Quickly {{action}} the current web page',
            selectedWeblink: 'Perform {{action}} on the selected web page',
            currentSelectedContent: 'Perform {{action}} based on the currently selected content',
          },
          status: {
            contentHandling: 'Processing content...',
            createFailed: 'Failed to create a new session!',
            contentHandleSuccessNotify: 'Processing successful, redirecting to the session page...',
            contentHandleFailedNotify: 'Processing failed!',
          },
        },
      },
      seeKnowledgeLibrary: 'View Knowledge Library',
      status: {
        createFailed: 'Create New Thread Failed!',
      },
    },
    siderMenu: {
      home: 'Workspace',
      canvas: 'My Workflows',
      appManager: 'My Templates',
      marketplace: 'Marketplace',
      contactUs: 'Contact Us',
      addToChrome: 'Install Browser Extension',
      canvasTitle: 'Canvas',
      canvasDescription:
        'Create, edit, and view canvas, unlike traditional Chatbot applications, Refly completes the entire process of dialogue thinking, content consumption, and creation through an infinite two-dimensional canvas.',
      libraryTitle: 'Knowledge Base',
      libraryDescription:
        'Create, edit, and view knowledge base, including all imported resources and created documents, supporting AI semantic search and answering.',
      subscription: 'Subscription',
      newCanvas: 'New Canvas',
      importCanvas: 'Import Canvas',
      news: "What's new?",
      threadLibrary: 'Threads',
      explore: 'Explore',
      getHelp: 'Get Help',
      download: 'Download',
      downloadExtension: 'Download Extension',
      newResource: 'Import Resource',
      settings: 'Settings',
      skill: 'Skills',
      collapse: 'Collapse',
      expand: 'Expand',
      logout: 'Log Out',
      newDraft: 'New Draft',
      library: 'Library',
      newDocument: 'New Document',
      recentProjects: 'Recent Projects',
      recentChats: 'Recent Chats',
      viewMore: 'View More',
      viewTutorial: 'View Docs',
      tour: 'View Tutorial',
      template: 'Template',
      systemTheme: 'Appearance',
    },
  },
  knowledgeLibrary: {
    header: {
      archive: 'Archive',
      timeline: 'Timeline',
      seeAll: 'See All',
      trendingTopic: 'Trending Topic: ',
    },
    archive: {
      title: 'Explore the Content Archive',
      item: {
        askFollow: 'Ask',
        share: 'Share',
        copy: 'Copy Link',
        copyNotify: 'Link Copied to Clipboard',
        noMoreText: "You've reached the end of the list!",
        linkMore: '{{count}} more',
      },
    },
    timeline: {
      title: 'Knowledge from {{year}}/{{month}}/{{day}}',
    },
    empty: {
      timelineTitle:
        'No new content read on {{year}}/{{month}}/{{day}}. Download the plugin to start exploring new content.',
      archiveTitle:
        "You haven't read any content yet. Download the plugin to start exploring new material!",
      download: 'Download Plugin',
      seeOther: 'View Knowledge from Other Dates',
    },
  },
  threadLibrary: {
    title: 'Threads',
    newThread: 'New Thread',
    footer: {
      noMoreText: "You've reached the end of the list.",
    },
    item: {
      askFollow: 'Ask ',
      messageCount: '{{count}} messages',
    },
    empty: {
      title:
        'No conversations at the moment. Download the plugin or visit the home page to ask a question!',
      download: 'Download Plugin',
      goHome: 'Go to Home Page to Search or Ask a Question',
    },
  },
  skill: {
    tab: {
      skillInstances: 'Installed Skills',
      skillTemplate: 'Marketplace',
    },
    runtimeConfig: {
      parseLinks: 'Parse links',
      parseLinksHint:
        'This skill will automatically read {{count}} link(s) from the query and add them to the context',
    },
    createFromTemplate: 'Create from template',
    skillManagement: {
      searchPlaceholder: 'Search for skill',
      removedFromTop: 'Removed from the top list',
      toppedSuccessfully: 'Topped successfully',
      toppedLimit: 'Topped skill limit reached, please cancel the top first',
      alreadyTopped: 'Already topped',
      addToTop: 'Top',
      removeFromTop: 'Cancel top',
    },
    newSkillModal: {
      newTitle: 'Add New Skill',
      updateTitle: 'Update Skill',
      name: 'Name',
      namePlaceholder: 'Please enter the name of the skill',
      description: 'Description',
      descriptionPlaceholder: 'Please enter the description of the skill',
      cancel: 'Cancel',
      confirm: 'Confirm',
      putErr: 'Failed. Please try again.',
      putSuccess: 'successfully',
      basicInfo: 'Basic Info',
    },
    newTriggerModal: {
      newTitle: 'Add New Trigger',
      updateTitle: 'Update Trigger',
      triggerConfig: 'Trigger Config',
      name: 'Name',
      namePlaceholder: 'Please enter the name of the trigger',
      triggerType: 'Trigger Type',
      triggerTypePlaceholder: 'Please select the type of the trigger',
      timer: 'Timer',
      simpleEvent: 'Simple Event',
      onResourceReady: 'When resource is ready',
      timerConfig: 'Time',
      timerConfigPlaceholder: 'Please select the time of the trigger',
      repeatInterval: 'Repeat Interval',
      repeatIntervalPlaceholder: 'Please select the interval of the trigger',
      resource: 'Resource',
      resourcePlaceholder: 'Please select the resource of the trigger',
      event: 'Event',
      eventPlaceholder: 'Please select the event of the trigger',
      hour: 'Every Hour',
      day: 'Every Day',
      week: 'Every Week',
      month: 'Every Month',
      year: 'Every Year',
    },
    instanceInvokeModal: {
      title: 'Run Skill',
      formLabel: {
        query: 'Question',
        resources: 'Resource',
        notes: 'Canvas',
        collections: 'Project',
        contentList: 'Content',
        urls: 'URLs',
      },
      placeholder: {
        query: 'Please enter question',
        resources: 'Please select resource',
        notes: 'Please select canvas',
        collections: 'Please select project',
        contentList: {
          select: 'Please select content',
          textarea: 'Please enter or paste content',
        },
        urls: 'Please enter URLs, one per line',
      },
      context: {
        contentList: {
          resourceSelection: 'Resource Selection',
          documentSelection: 'Document Selection',
          extensionWeblinkSelection: 'Web Link Selection',
          documentCursorSelection: 'Document Cursor Selection',
          documentBeforeCursorSelection: 'Document Before Cursor Selection',
          documentAfterCursorSelection: 'Document After Cursor Selection',
        },
      },
      invokeConfig: 'Invocation Config',
      templateConfig: 'Template Config',
    },
    skillDetail: {
      run: 'Run',
      delete: 'Delete',
      jobs: 'Jobs',
      triggers: 'Triggers',
      addTrigger: 'Add Trigger',
      back: 'Back',
      emptyJobs: 'No Jobs',
      emptyTriggers: 'Please configure triggers first',
      emptyInstances: "You haven't installed any skills",
      enable: 'Enable',
      disable: 'Disable',
    },
    skillRunStatus: {
      error: 'An error occurred, error message: {{error}}',
    },
  },
  threadItem: {
    title: 'Threads',
    footer: {
      noMoreText: "You've reached the end of the list.",
    },
    item: {
      askFollow: 'Ask',
      messageCount: '{{count}} messages',
    },
    empty: {
      title:
        'No conversations at the moment. Download the plugin or visit the home page to ask a question!',
      download: 'Download Plugin',
      goHome: 'Go to Home Page to Search or Ask a Question',
    },
  },
  settings: {
    title: 'Settings',
    guide: {
      title: 'Settings Wizard',
      description: "👋 Welcome to Refly! Let's proceed with some necessary configurations.",
    },
    tabs: {
      providers: 'Provider Config',
      modelConfig: 'Model Config',
      parserConfig: 'Parser Config',
      resourceParser: 'Resource Parser',
      defaultModel: 'Default Model',
      account: 'Account',
      language: 'Language',
      appearance: 'Appearance',
      subscription: 'Subscription',
      mcpServer: 'MCP Server',
      tools: 'Tools',
    },
    mcpServer: {
      tools: 'Tools',
      mcp: 'MCP',
      myServers: 'My Servers',
      mcpStore: 'MCP Store',
      toolStore: 'Tool Store',
      noToolsAvailable: 'No tools available',
      availableToolsPrefix: 'Available Tools: ',
      collapse: 'Collapse',
      viewMore: 'View More',
      viewToolsWithCount: 'View Tools ({{count}})',
      title: 'MCP Server Management',
      name: 'Name',
      type: 'Type',
      url: 'URL / Command',
      command: 'Command',
      args: 'Arguments',
      headers: 'Headers',
      env: 'Environment Variables',
      reconnect: 'Reconnection Settings',
      enabled: 'Enabled',
      status: 'Status',
      noServers: 'No MCP servers',
      addServer: 'Add MCP',
      editServer: 'Edit MCP',
      deleteServer: 'Delete MCP',
      deleteConfirmTitle: 'Delete MCP Server',
      deleteConfirmMessage: 'Are you sure you want to delete the MCP server "{{name}}"?',
      deleteSuccess: 'MCP server deleted successfully',
      deleteError: 'Failed to delete MCP server',
      createSuccess: 'MCP server created successfully',
      createError: 'Failed to create MCP server',
      updateSuccess: 'MCP server updated successfully',
      updateError: 'Failed to update MCP server',
      validateSuccess: 'MCP server validated successfully',
      validateError: 'Failed to validate MCP server',
      nameRequired: 'Please enter a server name',
      typeRequired: 'Please select a server type',
      urlRequired: 'Please enter the server URL',
      commandRequired: 'Please enter the command',
      namePlaceholder: 'Enter server name',
      urlPlaceholder: 'Enter server URL (e.g., http://localhost:3000)',
      commandPlaceholder: 'Enter command (e.g., node server.js)',
      argPlaceholder: 'Enter argument',
      addArg: 'Add Argument',
      headerKey: 'Header Name',
      headerValue: 'Header Value',
      addHeader: 'Add Header',
      envKey: 'Environment Variable',
      envValue: 'Value',
      addEnv: 'Add Environment Variable',
      maxAttempts: 'Max Reconnection Attempts',
      delayMs: 'Reconnection Delay (ms)',
      validate: 'Validate',
      formMode: 'Form Mode',
      jsonMode: 'JSON Mode',
      jsonParseError: 'Invalid JSON format',
      typeSSE: 'Server-Sent Events',
      typeStreamable: 'Streamable API',
      typeStdio: 'Standard I/O',
      batchImport: 'Batch Import',
      batchImportTitle: 'Import Multiple MCP Servers',
      batchImportDescription:
        'Import multiple MCP servers at once by providing a JSON array. Each object in the array should represent a server configuration.',
      importServers: 'Import Servers',
      batchImportSuccess: 'Successfully imported {{count}} of {{total}} servers',
      batchImportPartialError: 'Failed to import {{count}} of {{total}} servers',
      batchImportEmptyError:
        'No servers to import. Please provide a valid JSON array of server configurations.',
      universalFormat: 'Universal Format',
      reflyFormat: 'Refly Format',
      autoValidateHint: 'Auto-validate server configuration on save',
      enabledTooltip: 'Enable or disable this MCP server',
      validatingBeforeEnable: 'Validating server connection, will be enabled after validation',
      reconnectTooltip:
        'Configure automatic reconnection attempts if the server connection is lost',
      envKeyRequired: 'Environment variable key cannot be empty',
      envValueRequired: 'Environment variable value cannot be empty',
      headerKeyRequired: 'Header key cannot be empty',
      headerValueRequired: 'Header value cannot be empty',
      stdioWebDisabledTooltip: 'Stdio protocol is not supported in the web version.',
      jsonModeStdioWarning:
        "When configuring via JSON, please note: The 'stdio' type is not supported in the web version and may lead to unexpected behavior.",
      // Community MCP
      community: {
        title: 'Community MCP Configurations',
        description: 'Discover and install community MCP configurations',
        searchPlaceholder: 'Search configurations...',
        filterByType: 'Filter by type',
        allTypes: 'All Types',
        install: 'Install',
        installing: 'Installing...',
        installed: 'Installed',
        installSuccess: 'Successfully installed {{name}}',
        installError: 'Failed to install {{name}}',
        requiresApiKeyWarning:
          '{{name}} requires an API key. Please configure it in the detailed view.',
        viewDocumentation: 'View documentation',
        noDescription: 'No description available',
        loadError: 'Failed to load community configurations',
        loadErrorDescription: 'Please check your network connection and try again.',
        noConfigurations: 'No community configurations found',
        author: 'by {{author}}',
        version: 'v{{version}}',
        types: {
          sse: 'Server-Sent Events (SSE)',
          streamable: 'Streamable API',
          stdio: 'Standard I/O (Stdio)',
          websocket: 'WebSocket',
        },
        // API Key configuration translations
        configureApiKey: 'Configure API Key',
        apiKeyRequired: 'API Key Required',
        apiKeyDescription: 'This MCP server requires an API key to function properly.',
        apiKeyLabel: 'API Key',
        apiKeyPlaceholder: 'Enter your API key...',
        authMethod: 'Authentication Method',
        auth: {
          urlParam: 'URL Parameter',
          bearerToken: 'Bearer Token',
          headerKey: 'Header ({{header}})',
          apiKey: 'API Key',
        },
        validateAndInstall: 'Validate & Install',
        validating: 'Validating...',
        validateSuccess: 'Validation successful',
        validateError: 'Validation failed',
      },
    },
    toolStore: {
      title: 'Tool Store',
      noSearchResults: 'No tools found matching your search',
      noTools: 'No tools',
      searchPlaceholder: 'Search tools...',
      installedTools: 'Installed Tools',
      availableTools: 'Available Tools',
      install: {
        installTitle: 'Install Tool',
        updateTitle: 'Update Tool',
        name: 'Name',
        namePlaceholder: 'Please enter the name of the tool',
        authType: 'Authentication Type',
        authTypePlaceholder: 'Please select the authentication type',
        nameDuplicate: 'Tool name already exists',
        install: 'Install',
        installed: 'Installed',
        update: 'Update',
        updateSuccess: 'Update successfully',
        updateError: 'Update failed',
        installSuccess: 'Install successfully',
        installError: 'Install failed',
        required: '{{name}} is required',
        toolEnabled: '{{name}} enabled',
        toolDisabled: '{{name}} disabled',
        oauthStatus: 'OAuth Status',
      },
      oauth: {
        checking: 'Checking OAuth status...',
        authorized: 'OAuth authorized',
        required: 'OAuth authorization required',
        authorizeWith: 'Authorize with {{provider}}',
        checkFailed: 'Failed to check OAuth status',
        revoke: 'Revoke Authorization',
        revokeWith: 'Revoke {{provider}} Authorization',
        revokeConfirm: 'Are you sure you want to revoke authorization?',
        revokeSuccess: 'Successfully revoked authorization',
        revokeError: 'Failed to revoke authorization',
      },
    },
    appearance: {
      title: 'Appearance Settings',
      themeMode: 'Theme Mode',
      lightMode: 'Light Mode',
      darkMode: 'Dark Mode',
      systemMode: 'System Mode',
    },
    account: {
      title: 'My Account',
      avatar: 'Avatar',
      name: 'Username',
      namePlaceholder: 'Please enter your username...',
      nameValidationError:
        'Username can only contain letters, numbers, and underscores, and cannot exceed 30 characters.',
      nickname: 'Nickname',
      nicknamePlaceholder: 'Please enter your nickname...',
      email: 'Email',
      emailPlaceholder: 'Please enter your email...',
      update: 'Update',
      updateError: 'Failed to update user information. Please try again!',
      updateSuccess: 'User information updated successfully!',
      nameInvalid: 'The username is taken',
      editAccount: 'Edit Account Information',

      logout: 'Log Out',
      logoutConfirmation: {
        title: 'Log Out Confirmation',
        message: 'Are you sure you want to log out?',
      },
      uploadAvatar: 'Upload Avatar',
      imageSizeLimited: 'Image must be less than {{size}}MB',
      onlyImageAllowed: 'Only support {{type}} pictures',
      cropAvatar: 'Crop Avatar',

      // Invitation codes
      invitationCodes: 'Invitation Codes',
      noInvitationCodes: 'No invitation codes yet',
      expiresAt: 'Expires at',
      copy: 'Copy',
      statusUsed: 'Used',
      enterInvitationCode: 'Enter invitation code',
      activateInvitationCode: 'Activate Code',
      activateInvitationCodeSuccess: "Welcome to Refly 🎉 Let's start your vibe-workflow journey!",
      activateInvitationCodeFailed:
        'Invite code is invalid. Please try again or join Discord to get a new one.',
      activateInvitationCodeInvalid:
        'Invite code is invalid. Please try again or join Discord to get a new one.',
      activateInvitationCodeUsed:
        'Invitation code has already been used. Please try again or join Discord to get a new one.',
      activateInvitationCodeAlreadyInvited:
        'This user has already been invited. Please try again or join Discord to get a new one.',
      activateInvitationCodeOwnCode:
        'Cannot use your own invitation code. Please try again or join Discord to get a new one.',
      activateInvitationCodeAlreadyActivated:
        'This invitation has already been activated. Please try again or join Discord to get a new one.',
      invitationCodeCopied: 'Invite code copied! Go share it with your friends~',
      invitationCodeCopyFailed: 'Failed to copy invitation code',
      invitationReward: '+{amount} credits',
      inviteFriendsTitle: 'Invite friends with your code',
      inviteFriendsSubtitle: 'Both of you get 500 credits',
      invitationLimitText: 'Each user can invite {{used}}/{{limit}} times',
      copyInvitationCodeAction: 'Copy',
      resendInvitationCodeAction: 'Resend invite',
      statusUnknown: 'Unknown',
      tapCardToCopy: 'Tap to copy',
    },

    language: {
      title: 'Language Settings',
      uiLocale: {
        title: 'Interface Language',
        description: 'Set the language of all interactive content in the Refly product.',
      },
      outputLocale: {
        title: 'Output Language',
        description: 'AI will respond in this language.',
        auto: 'Auto Detect',
      },
    },
    subscription: {
      planType: {
        free: 'Free User',
        starter: 'Starter User',
        maker: 'Maker User',
        enterprise: 'Enterprise User',
      },
      mostPopular: 'Most Popular',
      getStarted: 'Get Started',
      subscribeNow: 'Subscribe Now',
      manage: 'Manage Subscription',
      currentPlan: 'Your Current Plan',
      t1Requests: 'T1 Requests',
      t1RequestsDescription:
        'T1 models include Claude 3.7 Sonnet (Thinking), DeepSeek R1, o3 Mini, GPT-4o and others. Each successful skill call to T1 models counts as one request.',
      t2Requests: 'T2 Requests',
      t2RequestsDescription:
        'T2 models include Gemini Flash 2.0, DeepSeek V3, Claude 3.5 Haiku and others. Each successful skill call to T2 models counts as one request.',
      requestsRefresh: 'Request count will be reset every day for users on free plan.',
      libraryStorage: 'Library Storage',
      libraryStorageDescription: 'Each resource and document in your library counts as one file.',
      advancedFileParsing: 'Advanced File Parsing',
      advancedFileParsingDescription:
        'PDF parsing with support for extraction of tables, images and formulas. Usage is tracked by the number of parsed pages.',
      fileSizeLimit: 'File Upload Limit',
      fileSizeLimitDescription: 'Each file size cannot exceed {{size}} MB.',
      subscriptionManagement: 'Manage Billing and Subscriptions',
      subscriptionStatus: {
        free: 'FREE',
        maker: 'MAKER',
        starter: 'STARTER',
        ultra: 'ULTRA',
        pro: 'PRO',
        max: 'MAX',
        plus: 'PLUS',
      },
      subscribe: {
        title: 'Choose the plan that suits you best',
        subtitle:
          'Subscribe to the annual plan to save 20%, and subscribe now to enjoy an additional 50% discount!',
        monthly: 'Monthly',
        yearly: 'Yearly',
        monthlyPlan: 'Monthly Auto-Renewal',
        yearlyPlan: 'Yearly Auto-Renewal',
        cancelAt: 'Will be canceled at {{date}}',
        trialExpireAt: 'Trial will expire at {{date}}',
        tooltip: {
          modelToken: 'Usage includes both model input and output tokens',
          vectorStorage: 'Used for storing semantic embeddings of resources and canvases',
          fileStorage:
            'Used for storing resource texts, text and history versions of canvases, and uploaded files (images)',
          mediaCredit: 'Used for generating one image or one second of video',
        },
        vectorStorage: 'Vector Storage',
        fileStorage: 'File Storage',
        t1Model: 'T1 Models',
        t2Model: 'T2 Models',
        freeModel: 'Free Models',
        mediaCredit: 'Media Credit (Coming Soon)',
        upgrade: 'Upgrade Now',
        continueFree: 'Continue Free',
        oneTime: 'One-Time',
        unlimited: 'Unlimited',
        fileCounts: '{{count}} files',
        dailyCounts: '{{count}} times/day',
        monthlyCounts: '{{count}} times/month',
        dailyPagesCount: '{{count}} pages/day',
        fileSizeLimit: 'Maximum {{count}} MB',
        free: {
          description: 'Everything you need to get started',
          serviceSupport: {
            name: 'Service Support',
            details: 'Community support (Discord)',
          },
        },
        ultra: {
          description: 'Unlimited creativity without boundaries',
          serviceSupport: {
            name: 'Service Support',
            details: 'Exclusive WeChat/Discord Group',
          },
        },
        plus: {
          description: 'Unlock more possibilities with advanced models',
          serviceSupport: {
            name: 'Service Support',
            details: 'Priority Email Support',
          },
        },
        pro: {
          description: 'Ideal choice for professional creators',
          serviceSupport: {
            name: 'Service Support',
            details: 'Priority Email Support',
          },
        },
        max: {
          description: 'The pinnacle of creative freedom',
          serviceSupport: {
            name: 'Service Support',
            details: 'Exclusive WeChat/Discord Group',
          },
        },

        description: "Cancel anytime. Subscribing means you agree to Refly's",
        and: 'and',
        privacy: 'privacy',
        terms: 'terms',
        planFeatures: 'Plan Features',
        period: 'Permanent',
        month: 'Month',
        year: 'Year',
        firstYear: 'First Year',
        firstYearOffCountDescription:
          'Enjoy 50% off for the first year. Price will revert to original from the 2nd year.',
        forFree: 'Free',
        resetAt: 'reset at {{date}}',
      },
    },

    action: {
      putErrorNotify: 'Failed to update user configuration. Please try again!',
      paySuccessNotify: 'Payment successful!',
      paySuccessDescription:
        'Thank you for your support of Refly! We will continue to iterate and make the product better! If you have any questions, please contact support@refly.ai',
      payCancelNotify: 'Payment canceled!',
      payCancelDescription:
        'We were unable to successfully receive your payment. If you have any questions, please contact support@refly.ai',
    },
    modelProviders: {
      // Tabs
      myProviders: 'My Providers',
      providerStore: 'Provider Store',

      addProvider: 'Add Provider',
      editProvider: 'Edit Provider',
      providerType: 'Type',
      apiKey: 'API Key',
      baseUrl: 'Base URL',
      enable: 'Enable',
      enabled: 'Enabled',
      disable: 'Disable',
      name: 'Name',
      namePlaceholder: 'Please enter the name of the provider',
      apiKeyPlaceholder: 'Please enter the API Key of the provider',
      baseUrlPlaceholder: 'Please enter the Base URL of the provider',
      enabledPlaceholder: 'Please select the enabled status of the provider',
      searchPlaceholder: 'Search for provider',
      tryDifferentSearch: 'Try different search',
      noSearchResults: 'No search results',
      noProviders: 'No providers',
      addFirstProvider: 'Add the first provider',
      deleteConfirm: 'Are you sure you want to delete the provider {{name}}?',
      selectProviderType: 'Please select the provider type',
      category: 'Category',
      categoryPlaceholder: 'Please select at least one',
      categories: {
        llm: 'LLM',
        webSearch: 'Web Search',
        urlParsing: 'URL Parsing',
        pdfParsing: 'PDF Parsing',
        reranker: 'Reranker',
        embedding: 'Embedding',
        mediaGeneration: 'Media Generation',
      },
      testConnection: 'Test Connection',
      testing: 'Testing...',
      connectionTestSuccess: 'Connection test successful',
      connectionTestFailed: 'Connection test failed',
      testConnectionFailed: 'Failed to test connection',
      createTempProviderFailed: 'Failed to create temporary provider',
      apiConnectionFailed: 'API connection failed',
      testTime: 'Test time',
      selectProviderFirst: 'Please select a provider type first',
      viewDetails: 'View Details',
      // Provider Store related translations
      community: {
        title: 'Community Provider Configurations',
        description: 'Discover and install community provider configurations',
        searchPlaceholder: 'Search configurations...',
        filterByCategory: 'Filter by category',
        allCategories: 'All Categories',
        install: 'Install',
        installing: 'Installing...',
        installed: 'Installed',
        installSuccess: 'Successfully installed {{name}}',
        installError: 'Failed to install {{name}}',
        requiresApiKeyWarning:
          '{{name}} requires an API key, please configure it in the detail view.',
        viewDocumentation: 'View Documentation',
        documentation: 'Documentation',
        noDescription: 'No description available',
        loadError: 'Failed to load community configurations',
        loadErrorDescription: 'Please check your network connection and try again.',
        noConfigurations: 'No community configurations found',
        author: 'Author: {{author}}',
        version: 'v{{version}}',
        // API Key configuration modal
        configureApiKey: 'Configure API Key',
        apiKeyRequired: 'API Key Required',
        apiKeyRequiredDescription:
          "This provider requires an API Key to function properly. Please obtain an API Key from the provider's website and enter it below.",
        apiKeyLabel: 'API Key',
        apiKeyPlaceholder: 'Please enter your API Key',
        baseUrlLabel: 'Base URL (Optional)',
        baseUrlDescription: 'Enter a custom service URL if needed',
        baseUrlPlaceholder: 'Use default URL',
        validateAndInstall: 'Validate and Install',
        validating: 'Validating...',
        validateSuccess: 'Validation successful',
        validateError: 'Validation failed',
        cancel: 'Cancel',
      },
    },
    copilot: {
      recommendQuestions: {
        refresh: 'Refresh',
      },
    },
    modelConfig: {
      title: 'Model Config',
      chatModels: 'Chat Models',
      otherModels: 'Other Models',
      conversationModels: 'Conversation Models',
      mediaGeneration: 'Media Generation',
      addModel: 'Add Model',
      editModel: 'Edit Model',
      deleteSyncConfirm:
        'Are you sure you want to delete the model {{name}}? It has been applied to the default model configuration and needs to be reconfigured.',
      disableSyncConfirm:
        '{{name}}​​ has been applied to the default model. Disabling it will reset your default settings. Proceed?',
      deleteConfirm: 'Are you sure you want to delete the model {{name}}?',
      deleteWarning: 'This action cannot be undone. Please proceed with caution.',
      disableDefaultModelTitle: 'Disable Default Model',
      disableDefaultModelContent:
        'Model {{modelName}} has been applied to the default model configuration. Disabling it will require reconfiguring the default model. Proceed?',
      noMediaModels: 'No media generation models',
      provider: 'Provider',
      providerPlaceholder: 'Please select the provider',
      name: 'Model Name',
      namePlaceholder: 'Please enter the name of the model',
      modelId: 'Model ID',
      modelIdPlaceholder: 'Please input or select the model ID',
      providerItem: 'Model',
      providerItemPlaceholder: 'Please select the model',
      enable: 'Enable',
      enabled: 'Enabled',
      disable: 'Disable',
      searchPlaceholder: 'Search for model',
      noSearchResults: 'No search results',
      noModels: 'No models',
      addFirstModel: 'Add the first model',
      tryDifferentSearch: 'Try different search',
      reranker: 'Reranker',
      embedding: 'Embedding',
      rerankerDescription: 'Re-rank search results based on the relevance to improve accuracy',
      embeddingDescription: 'Essential component for knowledge base search feature',
      contextLimit: 'Context Limit',
      contextLimitPlaceholder: 'Please set the context limit',
      maxOutput: 'Max Output Tokens',
      maxOutputPlaceholder: 'Please set the max output tokens',
      capabilities: 'Capabilities',
      capabilitiesPlaceholder: 'Please select the capabilities',
      functionCall: 'Function Call',
      vision: 'Vision',
      reasoning: 'Reasoning',
      contextCaching: 'Context Caching',
      image: 'Image',
      video: 'Video',
      audio: 'Audio',
      batchSize: 'Batch Size',
      batchSizePlaceholder: 'Please set the batch size',
      dimensions: 'Dimensions',
      dimensionsPlaceholder: 'Please set the dimensions',
      topN: 'Top N',
      topNPlaceholder: 'Please set the top N',
      relevanceThreshold: 'Relevance Threshold',
      relevanceThresholdPlaceholder: 'Please set the relevance threshold',
      clickToSet: 'Click to Set',
      default: 'Default Group',
      group: 'Group Name',
      groupPlaceholder: 'Please set up group name to categorize and manage the models',
      providerMode: 'Configuration Mode',
      providerModeDescription:
        'Global mode will use server-configured models, and custom mode supports configuring your own provider models',
      custom: 'Custom',
      global: 'Global',
      syncSuccessfully: 'Configuration mode updated successfully!',
      syncFailed: 'Failed to update providerMode configuration, please try again!',
      description: 'Description',
      descriptionPlaceholder: 'Please enter a description for this model',
    },
    modelTier: {
      free: 'Free',
      t1: 'T1',
      t2: 'T2',
    },
    parserConfig: {
      webSearch: 'Web Search',
      parserType: 'Parser Type',
      parserProvider: 'Parser Provider',
      urlParsing: 'URL Parsing',
      pdfParsing: 'PDF Parsing',
      searxng: 'SearxNG (Built-in)',
      cheerio: 'Cheerio (Built-in)',
      pdfjs: 'PDF.js (Built-in)',
      createProvider: 'Create Provider',
      updateConfigSuccessfully: 'Config updated successfully!',
      updateConfigFailed: 'Failed to update config. Please try again!',
      settingPlaceholder: 'Not configured',
    },
    defaultModel: {
      title: 'Default Model Config',
      chat: 'Default Q&A Model',
      agent: 'Default Agent Model',
      queryAnalysis: 'Question Analysis & Context Processing',
      titleGeneration: 'Smart Title Generator',
      image: 'Default Image Generation Model',
      video: 'Default Video Generation Model',
      audio: 'Default Audio Generation Model',
      noModel: 'Not Set',
      updateSuccessfully: 'Update successfully!',
      syncSuccessfully: 'Default model configuration updated successfully!',
      updateFailed: 'Update failed, please try again!',
      description: {
        chat: "We'll use this model to answer your questions when you don't specify a particular one.",
        agent: 'This model will be used when you toggle the agent mode.',
        queryAnalysis:
          'Helps understand your questions better and optimizes the input context. (Choose a fast and economical model for efficiency.)',
        titleGeneration: 'Creates suitable titles for your documents or canvases.',
        image: 'This model will be used for generating images, artwork, and visual content.',
        video: 'This model will be used for generating videos, animations, and motion graphics.',
        audio: 'This model will be used for generating audio, music, and sound effects.',
      },
    },
  },
  invitationCode: {
    title: 'Enter an invitation code to continue',
    description: 'Enter your 6-digit invitation code',
    dontHaveInvitationCode: "Don't have an invite code yet?",
    reward: 'Used +500 points',
  },
  contentDetail: {
    breadcrumb: {
      homePage: 'Home',
    },
    item: {
      share: 'Share',
      copy: 'Copy Link',
      copyNotify: 'Link Copied to Clipboard',
      copyContent: 'Copy Content',
      copySuccess: 'Content Copied to Clipboard',
      noMoreText: "You've reached the end of the list!",
      askFollow: {
        emptyNotify: 'The follow-up content cannot be empty!',
        successNotify: 'Session created successfully! Redirecting...',
        errorNotify: 'Failed to create a session! Please try again.',
        modal: {
          title: 'Confirm Session Creation',
          okText: 'Confirm',
          cancelText: 'Cancel',
          content:
            'Confirming will create a session based on the current content and generate a follow-up question based on "{{question}}".',
        },
      },
      session: {
        content: 'Content',
        source: 'Search Results',
        relatedQuestions: 'Related Questions',
      },
      webLink: {
        btnTip: 'View Summary of This Web Page',
        text: 'Summary',
        summaryModal: {
          successNotify: 'Successfully retrieved summary details!',
          errorNotify: 'Failed to retrieve summary details. Please try again!',
        },
      },
      input: {
        placeholder: 'Create a new session and follow up...',
        btnTip: 'Create a New Session and Follow Up',
      },
    },
  },
  threadDetail: {
    header: {
      newThread: 'New Thread',
    },
    breadcrumb: {
      threadLibrary: 'Threads',
    },
    empty: {
      title: "There's an issue with the conversation. No content is available at the moment.",
    },
    item: {
      share: 'Share',
      copy: 'Copy Link',
      copyNotify: 'Link Copied to Clipboard',
      copyAnswer: 'Copy Answer',
      copySuccess: 'Answer Copied to Clipboard',
      noMoreText: "You've reached the end of the list!",
      askFollow: {
        btnText: 'Click to Ask a Follow-Up Question',
        emptyNotify: 'The follow-up question cannot be empty!',
        successNotify: 'Session created successfully! Redirecting...',
        errorNotify: 'Failed to create a session! Please try again.',
        modal: {
          title: 'Confirm Session Creation',
          okText: 'Confirm',
          cancelText: 'Cancel',
          content:
            'Confirming will create a session based on the current content and generate a follow-up question based on "{{question}}".',
        },
      },
      session: {
        answer: 'Answer',
        source: 'Search Results',
        relatedQuestions: 'Related Questions',
      },
      input: {
        placeholder: 'Ask a follow-up question...',
        selectedWeblink: {
          title: 'Ask a Question Based on the Selected Web Page:',
        },
        searchPlaceholder: {
          all: 'Ask a question about the entire knowledge base...',
          selectedWeblink: 'Ask a question about the selected web page...',
          current: 'Ask a question about the current web page...',
          internet: 'Enter keywords for an internet search...',
          currentSelectedContent: 'Ask a question based on the currently selected content...',
        },
        status: {
          emptyNotify: 'The question field cannot be empty.',
          contentHandling: 'Processing content...',
          createFailed: 'Failed to create a new session!',
          contentHandleSuccessNotify: 'Processing successful, redirecting to the session page...',
          contentHandleFailedNotify: 'Processing failed!',
        },
      },
    },
  },
  entitySelector: {
    placeholder: {
      project: 'Select Project',
      resource: 'Select Resource',
      note: 'Select Canvas',
      skill: 'Select Skill',
      conversation: 'Select Conversation',
    },
    createEntity: {
      project: 'New Project',
      resource: 'New Resource',
      note: 'New Canvas',
      skill: 'New Skill',
      conversation: 'New Conversation',
      newProjectNameIsEmpty: 'Please enter the name of the project',
    },
  },
  components: {
    markdown: {
      parameters: 'Input',
      result: 'Output',
      failureReason: 'Failure Reason',
      parameterName: 'Name',
      parameterValue: 'Value',
      loadingToolCall: 'Loading tool call details...',
      noToolCallResult: 'No tool call result',
      copySuccess: 'Copied to clipboard',
      emptyCode: 'Cannot create empty code artifact',
      codeArtifactCreated: 'Code artifact created',
      codeArtifactError: 'Error creating code artifact',
      viewCode: 'View code',
      viewPreview: 'View preview',
      createCodeArtifact: 'Create code artifact',
      copySourceCode: 'Copy source code',
      collapse: 'Collapse',
      expand: 'Expand',
      collapsed: 'Collapsed',
      mermaidError: 'Error rendering Mermaid diagram',
      mermaid: {
        copySourceSuccess: 'Source code copied to clipboard',
        copySourceError: 'Failed to copy source code',
        copySuccess: 'Diagram copied to clipboard',
        copyError: 'Failed to copy image',
        downloadSuccess: 'Diagram downloaded successfully',
        downloadError: 'Failed to download image',
        copyStarted: 'Starting to copy...',
        downloadStarted: 'Starting download...',
        emptyCode: 'Cannot create empty Mermaid artifact',
        artifactCreated: 'Mermaid diagram artifact created',
        artifactError: 'Error creating Mermaid artifact',
        downloadAsPng: 'Download as PNG',
        copyToClipboard: 'Copy to clipboard',
        copySourceCode: 'Copy source code',
        createArtifact: 'Create diagram artifact',
      },
      workflow: {
        generating: 'Generating workflow...',
        invalidData: 'Invalid workflow data',
      },
    },
  },
  copilot: {
    title: 'Workflow Assistant',
    assistant: 'Copilot',
    placeholder: 'Describe the workflow you want to generate...',
    header: {
      history: 'Chat History',
      newConversation: 'New Chat',
      close: 'Close',
    },
    greeting: {
      title: 'Your Workflow Creation Partner',
      subtitle: 'Explore your curiosity together',
      youCanTry: 'Get new inspiration',
      query1:
        "Help me track and analyze Warren Buffett's U.S. stock portfolio changes this quarter.",
      query2:
        '‍Help me fetch the Product Hunt Top 10 today, generate a summary document and product podcast, and send the links to my email.',
      query3:
        'Help me generate a sequence of animation scenes in the style of Makoto Shinkai, telling the story of "growing up" from childhood to adulthood.',
    },
    sessionDetail: {
      thinking: 'Refly is thinking',
      approve: 'Approve',
      confirmClearCanvas: {
        title: 'Confirm Clear Canvas',
        content:
          'Approving this workflow will clear all current canvas content. Do you want to continue?',
        confirm: 'Continue',
        cancel: 'Cancel',
      },
    },
    addContext: 'Add Context',
    moreSettings: 'More Settings',
    baseContextCard: {
      title: 'Environment Context Quick Actions',
      filterTitle: 'Filter Environment Context',
      resourceContextCard: {
        title: 'Quick Actions for Current Resource',
        summary: {
          prompt: 'Summary',
          title: 'Summary',
        },
        relatedResource: {
          prompt: 'Similar Resources',
          title: 'Similar Resources',
        },
      },
      noteContextCard: {
        title: 'Quick Actions for Current Canvas',
        noteSelectedTitle: 'Question within Selected Canvas Content',
        selectedContentCount: '({{count}} items)',
        noSelectedContent: 'No selected content...',
        improveWriting: {
          prompt: 'Optimize the target text for writing purposes',
          title: 'Improve Writing',
        },
        fixSpllingAndGrammar: {
          prompt: 'Fix spelling and grammar errors',
          title: 'Fix Splling and Grammar',
        },
        makeShorter: {
          prompt: 'Shorten and refine content',
          title: 'Shorten Content',
        },
        makeLonger: {
          prompt: 'Expand content',
          title: 'Expand Content',
        },
        changeTone: {
          prompt: 'Change the selected content to {{tone}} tone',
          itemList: {
            professional: 'professional',
            casual: 'casual',
            direct: 'direct',
            confident: 'confident',
            friendly: 'friendly',
          },
          title: 'Change Tone',
        },
        simplifyLanguage: {
          prompt:
            'Simplify the content while maintaining the same meaning in a way that a first grader can understand',
          title: 'Simplify Language',
        },
        translate: {
          prompt: 'Translate the selected content to {{language}} language',
          title: 'Translate',
        },
        explainThis: {
          prompt: 'Explain the selected content',
          title: 'Explain',
        },
        findActionItem: {
          prompt: 'Extract action items',
          title: 'Extract Action Items',
        },
        continueWriting: {
          prompt: 'Continue writing based on the current context and complete the content',
          title: 'Continue Writing',
        },
        brainstormIdeas: {
          prompt: 'Brainstorm ideas',
          title: 'Brainstorm Ideas',
        },
        blogPost: {
          prompt: 'Write a blog post',
          title: 'Write a Blog Post',
        },
        outline: {
          prompt: 'Write an article outline',
          title: 'Write an Article Outline',
        },
        socialMediaPost: {
          prompt: 'Write a social media post',
          title: 'Write a Social Media Post',
        },
      },
    },
    selectedTextCard: {
      title: 'Selected Text Quick Actions',
      filterTitle: 'Filter Selected Content',
      placeholder: 'No selected content...',
      options: {
        resource: 'Selected Resource Content',
        note: 'Selected Canvas Content',
        noteCursorSelection: 'Canvas Cursor Selection',
        noteBeforeCursorSelection: 'Canvas Before Cursor Selection',
        noteAfterCursorSelection: 'Canvas After Cursor Selection',
        conversation: 'Selected Conversation Content',
      },
      save: {
        title: 'Save',
        tooltip: 'Save selected content',
        successNotify: 'Save successfully!',
        errorNotify: 'Save failed!',
      },
    },
    chatHistory: {
      title: 'Chat History',
      empty: 'No selected chat',
    },
    skillDisplay: {
      skillManager: 'Skill Manage',
      manager: 'Manage',
      more: 'More',
    },
    chatInput: {
      placeholder: 'Let Refly write something for you, or search anything you are interested in...',
      editPlaceholder: 'Ask AI to edit...',
      defaultQuestion: '[Call Skill: {{name}}]',
      chatWithReflyAssistant: 'Chat with Refly Assistant',
    },
    chatActions: {
      send: 'Send',
      stop: 'Stop',
      directChat: 'Direct Chat',
      noContextChat: 'No Context Chat',
      wholeSpaceChat: 'Whole Space Chat',
      recommendQuestions: 'Recommend Questions',
      chooseMcp: 'Choose MCP',
      replace: 'Replace Selection',
      reject: 'Reject',
      copy: 'Copy Answer',
      discard: 'Discard Changes',
    },
    configManager: {
      title: 'Skill Configuration',
      errorTipTitle: 'Send Failed',
      errorTip: 'Please adjust the skill configuration and try again',
    },
    projectSelector: {
      title: 'Select Project',
      tip: 'Selected project will be used to save the canvas. If no project is selected, a new one will be created automatically.',
    },
    webSearch: {
      title: 'Web Search',
      enable: 'Enable',
      disable: 'Disable',
    },
    knowledgeBaseSearch: {
      title: 'Library Search',
      enable: 'Enable',
      disable: 'Disable',
    },
    deepReasonWebSearch: {
      title: 'Enable Deep Web Search',
      enable: 'Enable',
      disable: 'Disable',
    },
    tokenUsage: 'Input {{inputCount}}, Output {{outputCount}}',
    reflyAssistant: 'Refly Knowledge Curator',
    message: {
      copy: 'Copy code',
      copySuccess: 'Copied to clipboard',
      insertBelow: 'Insert Document',
      replaceSelection: 'Replace Selection',
      createNewNote: 'Create New Document',
      createDocument: 'Save as New Document',
      skillRunSuccess: 'Skill Completed, {{count}} Logs',
      skillRunning: 'Skill Running...',
      relatedQuestion: 'Recommended Questions',
      askFollowingSuccess: 'Question Added to Input Box',
      summarySelectedContent: 'Summarize the Selected Content',
      brainstormIdeas: 'Brainstorm Ideas',
      writeTwitterArticle: 'Write a Twitter Original Article',
      installSkillHint: "You haven't added any assistants, click me to add",
      installSkillHintTitle: 'Add Assistant',
      openCanvas: 'Open Canvas',
    },
    abortConfirmModal: {
      title: 'Stop Execution',
      content:
        'Are you sure you want to stop the current execution? The consumed credits will not be refunded.',
      confirm: 'Stop Execution',
      cancel: 'Cancel',
    },
    abortSuccess: 'Execution has been stopped',
    recommendQuestions: {
      title: 'Recommended Questions',
      refresh: 'Refresh',
      empty: 'No recommended questions',
    },
    contextItem: {
      current: 'Current ',
      documentSelection: 'Document Selection',
      resourceSelection: 'Resource Selection',
      selection: 'Selected',
      skillResponseSelection: 'Skill Response Selection',
      documentCursorSelection: 'Document Cursor Selection',
      documentBeforeCursorSelection: 'Document Before Cursor Selection',
      documentAfterCursorSelection: 'Document After Cursor Selection',
      extensionWeblinkSelection: 'Extension Web Link Selection',
      document: 'Document',
      resource: 'Resource',
      memo: 'Memo',
      skillResponse: 'AI Response',
      threadHistory: 'Thread History',
      quote: 'Quote',
      extensionWeblink: 'Extension Web Link',
    },
    modelSelector: {
      configureModel: 'Click to configure models',
      noVisionSupport: 'This model does not support image processing',
      noAvailableModel: 'No available models',
    },
    contentSelector: {
      openForWeb: 'Enable content selection for questions, and the canvas is now in read-only mode',
      closeForWeb: 'Close the selector, and the canvas is now in edit mode',
      open: 'Content selector is enabled',
      close: 'Content selector is disabled',
    },
    convListModal: {
      title: 'Threads',
    },
    sourceListModal: {
      title: 'Result Sources',
      moreSources: 'View More and Import to Canvas',
      searchPlaceholder: 'Search Sources...',
      openOriginWebsite: 'Open Origin Website',
      openKnowledgeBaseLink: 'Open Knowledge Base Link',
      webSearchTab: 'Web Search',
      libraryTab: 'Library Search',
      noUrl: 'This source does not have a link, you can select it and import to canvas',
    },
    premiumBanner: {
      message: 'Need more requests? Get higher limits with Premium.',
      upgrade: 'Upgrade',
    },
  },
  hooks: {
    useBuildThreadAndRun: {
      status: {
        createFailed: 'Failed to create a new session!',
      },
      task: {
        summary: {
          question: 'Summarize the Web Page',
          actionPrompt: 'Summarize the content of the web page and extract key points',
        },
      },
    },
  },
  title: 'Welcome {{name}}, to react using react-i18next fully type-safe',
  description: {
    part1: 'This is a simple example.',
    part2: '😉',
  },
  userMessagesUnread_one: 'You have {{count}} unread message.',
  userMessagesUnread_other: 'You have {{count}} unread messages.',
  requestAccess: {
    description: 'Oops, your account does not have access to the beta testing.',
    apply: 'Apply for early access',
    copyEmail: 'Copy email ',
  },
  homePage: {
    suggestion: {
      investment: 'Write an Investment Memo',
      productSearch: 'Write a Competitive Analysis',
      academicArticle: 'Write an Academic Article about Scaling Law',
      socialTweet: 'Write Social Media Posts in Founder Mode',
    },
    footer: {
      pricing: 'Pricing',
      contact: 'Contact',
      terms: 'Terms',
      privacy: 'Privacy',
    },
  },
  tools: {
    title: 'Choose Tools',
    empty: 'No tools available',
    selected: 'Selected',
    browseToolStore: 'Go to Install',
    manageTools: 'Manage Tools',
    useTools: 'Use Tools',
  },
  pilot: {
    name: 'Agent',
    newTask: 'New Task',
    description:
      'Refly Agent is an autonomous agent that solves your problems with thinking steps displayed in our free-form canvas.',
    thinking: 'Agent is thinking',
    noSessions: 'No agent sessions found',
    loadFailed: 'Failed to load session details',
    epoch: 'Epoch {{count}}',
    newSession: 'New Session',
    sessionHistory: 'Session History',
    sessionInputPlaceholder: 'Ask a question...',
    createPilotSessionFailed: 'Failed to create agent session',
    recentSessions: 'Recent Sessions',
    createdAt: 'Created At',
    noTasks: 'No tasks available yet',
    status: {
      init: 'Init',
      executing: 'Executing',
      waiting: 'Waiting',
      finish: 'Finish',
      failed: 'Failed',
      planning: 'Planning tasks...',
      executingSteps: 'Task execution {{current}} / {{total}} ...',
      completedTasks: 'Completed {{count}} tasks ...',
      taskFailed: 'Task terminated',
      understandingIntent: 'Understanding intent and analyzing requirements...',
    },
    recovery: {
      title: 'Retry All Failed Tasks',
      success: 'Session recovery started successfully',
      error: 'Failed to recover session',
    },
    stepRecovery: {
      button: 'Retry',
      success: 'Step recovery started successfully',
      error: {
        noStepId: 'Step ID not found',
        general: 'Failed to recover step',
      },
    },
  },
  deck: {
    references: 'References',
    referencedBy: 'Referenced By',
  },
  verification: {
    title: 'Verification Required',
    otpPlaceholder: 'Enter verification code',
    submit: 'Verify',
    success: 'Verification successful',
    error: 'Verification failed. Please try again.',
  },
  tour: {
    onboardingModal: {
      title: 'Feature Highlights',
      prev: 'Previous',
      next: 'Next',
      startInteractive: 'Start Interactive Tutorial',
      highlight: {
        1: 'Multi-threaded conversation',
        2: 'AI-powered skills',
        3: 'Context',
        4: 'Knowledge Base Integration',
        5: 'Quotes',
        6: 'Document Editing with AI',
        7: 'Help Documentation',
      },
      description: {
        1: 'Experience seamless multi-threaded conversations that allow natural topic transitions and parallel discussions, enabling deeper exploration of ideas and enhanced problem-solving capabilities.',
        2: 'Driven by an AI model, after inputting your question, you can flexibly select any node in the canvas as the context to generate new node content.',
        3: 'Enhanced contextual understanding through temporary memory systems, enabling more precise and relevant AI responses. Freely select nodes or add references as context within the canvas.',
        4: 'Seamlessly integrate external resources into your knowledge ecosystem, creating a comprehensive and personalized information network from scratch.',
        5: 'Effortlessly select quotes from various sources - resources, documents, memos, or skill responses - enriching your context with relevant references.',
        6: 'Beyond powerful real-time Markdown editing, enjoy AI-assisted document refinement by selecting specific content for intelligent modifications and enhancements.',
        7: 'Refly provides comprehensive help documentation to help you get started quickly. Click the "Help" button in the bottom left corner of the canvas to view more help documents.',
      },
    },
  },
  subscription: {
    modalTitle: 'Upgrade Your Plan to Get More Credits',
    cancelAnytime: "Cancel anytime. By subscribing, you agree to Refly's",
    privacy: 'Privacy',
    terms: 'Terms',
    earlyBirdsWelcome: {
      title: 'To Our Earliest Companions',
      subtitle: 'On the first day of the credit system launch, we want to thank you the most.',
      description1: 'Thank you for your support during the unlimited era.',
      description2: "With the credit system online, you don't need to change any usage habits.",
      description3: 'Kimi, GPT-4.1, Gemini and other main models can still be used without limits.',
      slogan:
        'Thank you for your trust, may we journey together towards broader creative horizons!',
      gotIt: 'Got it',
      learnMore: 'Learn about my unlimited privileges',
    },
    creditBilling: {
      description: {
        '5k_tokens':
          '{{inputCost}} credit(s) per 5k input tokens, {{outputCost}} credit(s) per 5k output tokens',
        '1m_tokens':
          '{{inputCost}} credit(s) per 1M input tokens, {{outputCost}} credit(s) per 1M output tokens',
        product: '{{cost}} credit(s) per product',
        canvasTotal:
          'AI output is unstable, credits are only estimated and subject to actual execution results',
      },
    },
    plans: {
      priceMonthly: '{{price}}/month',
      priceYearly: '{{price}}/month',
      priceYearlyTotal: '{{price}}/year Save 20%',
      upgrade: 'Get {{planType}}',
      cannotChangeTo: 'Cannot change to {{planType}}',
      currentPlan: 'Your Current Plan',
      cannotSwitchTo:
        "Legacy plans can't be switched to Plus directly.Please contact support@refly.ai",
      memberBenefits: 'Member Benefits',
      free: {
        title: 'Free',
        description: 'Ideal for beginners exploring workflow automation',
        price: 'Free forever',
        buttonText: 'Continue for free',
        buttonTextDowngrade: 'Downgrade to Free',
        features: ['Daily new credits\n100 credits'],
      },
      pro: {
        title: 'PRO',
      },
      plus: {
        title: 'Plus',
        description: 'Suitable for running a high volume of automation tasks',
        buttonText: 'Get Plus',
        features: [
          'Daily new credits\n100 credits',
          'Monthly credits\n2,000 credits',
          //'New subscribers receive an extra\n2,000 bonus credits',
          'Access to a vast library of tools',
          {
            name: 'Credit-free tools',
            type: 'pointFreeTools',
            items: [
              'Nano Banana pro',
              'Seedream 4.5',
              'Fish Audio',
              'Instagram integrations',
              'Facebook integrations',
              'Twitter integrations',
            ],
            duration: '1 MONTH',
          },
          'Service support\nHigh priority support',
        ],
      },
      max: {
        title: 'MAX',
      },
      starter: {
        title: 'Starter Plan',
        description: 'The perfect choice for curious minds beginning their AI journey',
        buttonText: 'Get Starter',
        features: [
          'Daily new credits\n300 points',
          'Monthly credits\n2,000 points',
          'Top AI models\nOpenAI, Claude, Grok, DeepSeek...',
          'Knowledge base files\n200 files',
          'File upload limit\nMax 10MB',
          'Service support\nHigh priority email support',
        ],
      },
      maker: {
        title: 'Maker Plan',
        description: 'A high-performance toolkit for ambitious creators ready to go further',
        buttonText: 'Get Maker',
        features: [
          'Daily new credits\n300 points',
          'Monthly credits\n4000 points',
          'Top AI models\nOpenAI, Claude, Grok, DeepSeek...',
          'Knowledge base files\n500 files',
          'File upload limit\nMax 20MB',
          'Service support\nHigh priority support',
        ],
      },
      enterprise: {
        title: 'Enterprise Plan',
        description: 'A scalable AI workspace built for professional teams and serious innovation',
        buttonText: 'Contact Sales',
        features: [
          'Monthly customized credits',
          'Visualization Canvas + Nodes',
          'Multi-model integration + Smart retrieval',
          'Knowledge base deep connection',
          'Template and node sharing',
          'More enterprise capabilities coming soon',
        ],
      },
    },
    creditPacks: {
      title: 'Credit Packs',
      buyNow: 'Buy Now',
      cancel: 'Cancel',
      credit_pack_100: {
        title: '100 Credits',
        description: 'Perfect for trying out advanced AI models',
        price: '$1',
        credits: '100 credits',
      },
      credit_pack_500: {
        title: '500 Credits',
        description: 'Ideal for regular AI usage and experimentation',
        price: '$5',
        credits: '500 credits',
      },
      credit_pack_1000: {
        title: '1000 Credits',
        description: 'Great for intensive AI projects and workflows',
        price: '$10',
        credits: '1000 credits',
      },
      credit_pack_2000: {
        title: '2000 Credits',
        description: 'Best value for heavy AI users and teams',
        price: '$20',
        credits: '2000 credits',
      },
      features: [
        'Instant top-up\nCredits arrive immediately so your work never stops.',
        'Use anywhere\nRun any workflow, template, agent, or tool.',
        '90-Day validity\nTotal flexibility on when to spend your credits.',
        'Scale anytime\nIdeal for heavy workloads or sudden spikes in demand.',
      ],
    },
    subscriptionManagement: {
      title: 'Subscription Management',
      subtitle: 'Manage subscription plans and credits',
      currentPlan: 'Current Subscription Plan',
      willExpire: 'expires',
      willAutoRenew: 'will auto-renew',
      viewBilling: 'View Billing',
      changePlan: 'Change Plan',
      viewPricing: 'View Pricing',
      upgradePlan: 'Upgrade Plan',
      availableCredits: 'Total Available Credits',
      availableCreditsDescription: 'All credits you can use to run workflows',
      regularCreditsDescription: 'Credits earned from purchases, bonuses, and system rewards',
      templateEarningsCreditsDescription: 'Credits earned from others running your templates',
      regularCredits: 'Regular Credits',
      templateEarningsCredits: 'Revenue Credits',
      remainingCredits: 'Credits',
      knowledgeBaseFiles: 'Knowledge Base Files',
      creditUsageDetails: 'Credit Usage Details',
      creditRechargeDetails: 'Credit Recharge Details',
      pagination: {
        totalItems: '{{start}}-{{end}} of {{total}} items',
      },
      usageDetails: 'Usage Details',
      usageTime: 'Usage Time',
      creditChange: 'Credit Change',
      rechargeSource: 'Source',
      rechargeTime: 'Recharge Time',
      expiryDate: 'Expiry Date',
      remaining: 'Remaining',
      status: 'Status',
      disabled: 'Expired',
      usageType: {
        model_call: 'Model Call',
        tool_call: 'Tool Call',
        media_generation: 'Media Generation',
        embedding: 'Embedding',
        reranking: 'Reranking',
        other: 'Other',
        commission: 'Template usage',
        commissionPrefix: 'Template usage: ',
      },
      rechargeType: {
        purchase: 'Credit pack',
        gift: 'Gift',
        promotion: 'Promotion',
        refund: 'Refund',
        subscription: 'Subscription',
        commission: 'Template earnings',
        commissionPrefix: 'Template earnings: ',
        invitation: 'Invitation bonus',
      },
      depleted: 'Depleted',
      expired: 'Expired',
      available: 'Available',
      planNames: {
        starter: 'Starter Plan',
        maker: 'Maker Plan',
        freePlan: 'Free Plan',
      },
      creditsWelcome: {
        title: 'Dear Creator',
        subtitle: 'Refly.ai has officially launched the credits system!',
        description1:
          'Your existing membership benefits have been fully preserved, and you will automatically receive corresponding credits for content generation each month.',
        description2:
          'If you want to experience flexible billing and exclusive activities, feel free to upgrade to the new plan at any time (with exclusive limited-time double credits)!',
        slogan:
          'Thank you for accompanying us on this journey. A new creative adventure begins with the credit era!',
        continueButton: 'Continue with current version',
        learnMoreButton: 'Learn about new plans',
      },
    },
    yearly: 'Yearly',
    monthly: 'Monthly',
    save20: 'Save 20%',
    mostPopular: 'Most Popular',
    storageExceeded: {
      title: 'Storage Full',
      description:
        'Your storage space has reached its limit. Upgrade your plan for more storage to continue using our services.',
      upgrade: 'Upgrade Now',
    },
    storageFullModal: {
      free: {
        title: 'Free Plan',
        titleCn: 'Your Current Plan',
        description: 'A welcoming gateway to explore the power of AI—completely free',
        price: 'Free forever',
        buttonText: 'Continue for free',
        buttonTextDowngrade: 'Downgrade to Free',
        features: ['Daily new credits\n100 points'],
      },
      starter: {
        title: 'Starter Plan',
        titleCn: 'Starter Plan',
        description: 'The ideal choice for light explorers',
        priceMonthly: '$ {{price}}/month',
        priceYearly: '$ {{price}}/month',
        priceYearlyTotal: '$ {{price}}/year, save 20%',
        buttonText: 'Upgrade to {{planName}}',
        features: [
          'Daily new credits\n300 points',
          'Monthly credits\n2,000 points',
          'Top AI models\nOpenAI, Claude, Grok, DeepSeek...',
          'Knowledge base files\n200 files',
          'File upload limit\nMax 10MB',
          'Support\nPriority email support',
        ],
      },
      maker: {
        title: 'Maker Plan',
        titleCn: 'Maker Plan',
        description: 'The high-performance choice for advanced creators',
        priceMonthly: '$ {{price}}/month',
        priceYearly: '$ {{price}}/month',
        priceYearlyTotal: '$ {{price}}/year, save 20%',
        buttonText: 'Upgrade to {{planName}}',
        features: [
          'Daily new credits\n300 points',
          'Monthly credits\n4,000 points',
          'Top AI models\nOpenAI, Claude, Grok, DeepSeek...',
          'Knowledge base files\n500 files',
          'File upload limit\nMax 20MB',
          'Support\nPriority email support',
        ],
      },
      enterprise: {
        title: 'Enterprise',
        titleCn: 'Enterprise Plan',
        description: 'The AI workbench designed for businesses',
        buttonText: 'Contact Sales',
        features: [
          'More monthly credits',
          'Visual Canvas + Nodes',
          'Multi-model integration + Smart retrieval',
          'Deep knowledge base connections',
          'Template and node sharing',
          'More enterprise features coming soon',
        ],
      },
      currentPlan: 'Your Current Plan',
    },
  },
  onboarding: {
    rewardTitle: 'Reward Credits',
    rewardPoints: '3000 Credits',
    startExperience: 'Start Now',
  },
  template: {
    templateLibrary: 'Template Library',
    myTemplates: 'My Templates',
    allTemplates: 'All',
    createTemplate: 'Create Template',
    templateTitle: 'Name',
    templateTitlePlaceholder: 'Please enter template name',
    templateDescription: 'Description',
    templateDescriptionPlaceholder: 'Please enter template description',
    createSuccess: 'Template created successfully, please view in template library',
    preview: 'Try it',
    use: 'Remix',
    duplicateCanvas: 'Remix',
    canvasTitle: 'Name',
    duplicateCanvasTitlePlaceholder: 'Please enter name',
    moreTemplates: 'More Templates',
    searchPlaceholder: 'Please enter keyword to search template',
    noRelatedTemplates: 'No related templates',
    hideTemplates: 'Hide Template',
    duplicateCanvasEntities: 'Duplicate the canvas entities',
    noDescription: 'No description',
    emptyList: 'Zero templates? No problem! Create yours now and inspire the community!',
    notFoundQuestion: "Didn't find the workflow automation template you need?",
    goToMarketplace: 'Go to Marketplace',
  },
  workflowApp: {
    title: 'Name',
    description: 'Description',
    titlePlaceholder: 'Please enter name',
    descriptionPlaceholder: 'Please enter description',
    publish: 'Publish',
    updatePublish: 'Update Publish',
    edit: 'Edit App',
    publishSuccess: 'Published successfully',
    alreadyPublished: 'Already Published',
    viewPublished: 'View Published',
    runLogs: 'Run Logs',
    products: 'Products',
    productsGenerated: 'Generated {{count}} results for you',
    productsGeneratedWithCost:
      'Generated {{count}} results for you, used {{executionCost}} credits',
    emptyLogs: 'No run logs, click to create app, start running',
    coverImage: 'Cover Image',
    coverImageHint: 'Support JPG, PNG, WebP formats, file size within 5MB',
    uploadCover: 'Upload Cover',
    invalidImageType: 'Invalid image type, please upload JPG, PNG, or WebP format',
    imageTooLarge: 'Image size exceeds 5MB, please upload a smaller image',
    coverImageRequired: 'Cover image is required',
    enableRemix: 'Enable Remix',
    remixHint: 'Allow others to remix and modify this workflow app',
    runResult: 'Run Result',
    changeResult: 'Change Result',
    resultsSelected: 'results selected',
    selectResults: 'Select Results',
    noResultsAvailable: 'No results available',
    noResultsSelected: 'No results selected',
    runResultRequired: 'No run result selected. Please choose the result before publishing.',
    validationNoUserInputs: 'Please add User Inputs before publishing your template.',
    validationNoAgents: 'Please add agents before publishing your template.',
    validationAgentsNotRun: 'Please run all agents successfully before publishing your template.',
    confirmCloseContent:
      'Unsaved content will be lost after closing. Are you sure you want to close?',
    resultPreview: 'Result Preview',
    notLoggedIn: 'Not Logged In',
    run: {
      completed: 'Template run successfully',
      failed: 'Template run failed',
      error: 'Template run failed',
      loginRequired: 'Please login to run this workflow',
      loginRequiredCopy: 'Please login to copy this workflow',
      workflowStarted: 'Workflow started',
      executionIdFailed: 'Failed to get execution ID',
      executeFailed: 'Failed to execute workflow',
      executeError: 'Failed to execute workflow',
      thinking: 'Thinking...',
      stop: 'Stop',
      stopped: 'Workflow stopped',
      stoppedMessage: 'Workflow stopped, no results generated. You can rerun the template.',
      stopConfirmTitle: 'Stop Template Run?',
      stopConfirmMain: 'Are you sure you want to stop this template run?',
      stopConfirmNote:
        'The run will be terminated immediately, and credits already consumed will not be refunded.',
      stopSuccess: 'The template run has been stopped successfully.',
      confirm: 'Confirm Stop',
    },
    revenueSharing: {
      title: 'Earn credits by running templates',
      earningsHint: 'Each run can earn <num>{{creditEarningsPerRun}}</num> credits',
      howToEarn: 'How to earn',
    },
    publishToCommunity: {
      label: 'Publish to Marketplace',
      help: 'After publishing to the marketplace, other users can discover and use your workflow app',
    },
    copyLinkTooltip: 'Copy link from your latest published version',
  },
  project: {
    create: 'Create Project',
    viewAllProjects: 'View All Projects',
    addSource: 'Add File',
    canvas: 'Canvas',
    source: 'File',
    noDescription: 'Quickly fill in the description ~',
    customInstructions: 'Custom Instructions',
    waitingUploadCover: 'Waiting for upload cover',
    askProject: 'Ask Project',
    noProjects: 'No projects available',
    knowledgeToggle: {
      enabledDesc:
        'Ask Project is currently enabled. Knowledge from files in "{{projectName}}" will be used as reference when asking questions.',
      disabledDesc:
        'Ask Project is currently disabled. Knowledge from files in "{{projectName}}" will not be used as reference when asking questions.',
    },
    selectProject: 'Select Project',
    switchProject: 'Switch Project',
    createModal: {
      createTitle: 'Create Project',
      editTitle: 'Edit Project',
      title: 'Name',
      titlePlaceholder: 'Please enter project name',
      description: 'Description',
      descriptionPlaceholder: 'Please enter project description',
      coverPicture: 'Cover',
      cropCoverPicture: 'Crop Cover Picture',
      onlyImageAllowed: 'Only PNG, JPG, JPEG, GIF images are allowed',
      imageSizeLimited: 'Image size limited to {{size}} MB',
      uploadCoverPicture: 'Upload Cover',
      instructions: 'Instructions',
      instructionsPlaceholder: 'Please enter instructions',
    },
    action: {
      deleteSuccess: 'Delete successfully',
      deleteConfirm: 'Are you sure you want to delete the project "{{name}}"?',
      createSuccess: 'Create successfully',
      editSuccess: 'Edit successfully',
      removeItemsSuccess: 'Removed selected items',
      deleteItemsSuccess: 'Deleted selected items',
      addCanvas: 'Add Canvas',
      createCanvas: 'Create New Canvas',
      addExistingCanvas: 'Add Existing Canvas',
      delete: 'Delete',
      remove: 'Remove from project',
      addToCanvas: 'Add to Canvas',
      exit: 'Exit',
      addSource: 'Add File',
      addExistingSource: 'Add Existing File',
      importResource: 'Import Resource',
      onlyImageAllowed: 'Only {{type}} images are allowed',
      imageSizeLimited: 'Image size limited to {{size}} MB',
    },
    addSources: {
      title: 'Add Files',
      selectAll: 'Select All',
    },
    sourceList: {
      selectedCount: 'Selected {{count}} items',
      removeConfirm: 'Are you sure you want to remove the selected items from the project?',
      deleteConfirm: 'The selected {{count}} items will be permanently deleted, continue?',
      searchPlaceholder: 'Search Sources...',
      sourceCount: '{{resourceCount}} resources · {{documentCount}} documents',
    },
    canvasCount: '{{canvasCount}} canvases',
  },
  new: {
    createPageFromCanvas: 'Create Page from Canvas',
    pageTitle: 'Page Title',
    optional: 'optional',
    enterPageTitle: 'Enter page title',
    enterCanvasId: 'Enter Canvas ID',
    loadNodes: 'Load Nodes',
    selectNodesToInclude: 'Select Nodes to Include',
    untitled: 'Untitled',
    type: 'Type',
    selectAll: 'Select All',
    deselectAll: 'Deselect All',
    createPage: 'Create Page',
    instructions: 'Instructions',
    instructionStep1: 'Enter Canvas ID and click "Load Nodes" button',
    instructionStep2: 'Select nodes you want to include in the page',
    instructionStep3: 'Enter page title (optional)',
    instructionStep4: 'Click "Create Page" button',
    instructionStep5: 'After success, you will be redirected to the page list',
    createPageFailed: 'Failed to create page',
    noValidNodes: 'No valid node data found',
    noNodesFound: 'No nodes found in Canvas',
    invalidApiResponse: 'Invalid API response format',
    fetchCanvasDataFailed: 'Failed to fetch Canvas data',
    pleaseEnterCanvasId: 'Please enter Canvas ID',
    pleaseSelectAtLeastOneNode: 'Please select at least one node',
    untitledPage: 'Untitled Page',
    createdFromCanvas: 'Created from Canvas {canvasId}',
    pageCreatedSuccess: 'Page created successfully',
    pageId: 'Page ID',
    unknown: 'Unknown',
    refresh: 'Refresh Nodes',
  },
  workflowList: {
    title: 'Workflow',
    createWorkflow: 'Create Workflow',
    creatYourWorkflow: 'Create your workflow',
    noWorkflows: 'No workflows',
    noSearchResults: 'No search results',
    searchWorkflows: 'Search workflows',
    shared: 'Shared',
    private: 'Private',
    published: 'Published',
    unpublished: 'Unpublished',
    share: 'Share',
    unshare: 'Unshare',
    copyLink: 'Copy Workflow Link',
    copyLinkTooltip: 'Please set to public visibility first before sharing',
    templateLink: 'Copy Template Link',
    templateLinkCopied: 'Template link copied successfully! Paste to browser to view',
    templateNotPublishedTooltip: 'Template not published, publish to view details',
    templateLinkFailed: 'Failed to copy template link for workflow {{title}}',
    shareSuccess: 'Workflow {{title}} shared successfully! Link copied to clipboard.',
    shareFailed: 'Failed to share workflow {{title}}',
    unshareSuccess: '{{title}} has been unshared, only you can view it',
    unshareFailed: 'Failed to unshare workflow {{title}}',
    copyLinkSuccess:
      'Share link copied to clipboard! Share your workflow with friends to try it out',
    copyLinkFailed: 'Failed to copy link for workflow {{title}}',
    usedToolsetsTitle: 'Workflow Tools',
    tableTitle: {
      workflowName: 'Title',
      status: 'Status',
      publishStatus: 'Publish Status',
      tools: 'Tools',
      owner: 'Owner',
      lastModified: 'Last Modified',
      actions: 'Actions',
    },
  },
  appManager: {
    title: 'My Templates',
    searchApps: 'Search templates',
    noApps: 'No templates',
    unpublish: 'Unpublish',
    view: 'View',
    noSearchResults: 'No search results',
    unpublishSuccess: '{{title}} unpublish successfully',
    unpublishFailed: '{{title}} unpublish failed',
    deleteConfirm: 'Are you sure you want to revoke the template {{title}}?',
    reviewStatus: {
      reviewing: 'Under Review',
      reviewingTooltip: 'Template is under review, but can still be used normally',
      published: 'Published',
      publishedTooltip: 'Template has been published to the community',
    },
  },
  whyChooseRefly: {
    title: 'Why Choose Refly to Build Workflow?',
    features: {
      everyoneCanUse: {
        title: 'Everyone Can Use',
        description:
          'Zero-code setup, non-technical users can\neasily build and run complete workflows.',
      },
      configureOnce: {
        title: 'Configure Once, Use Repeatedly',
        description: 'One-click template execution, avoid repetitive\nsetup, save time and effort.',
      },
      contextPreserved: {
        title: 'Context Never Lost',
        description:
          'Global Memory / Knowledge\nensures stable, controllable, and reproducible outputs.',
      },
      directDelivery: {
        title: 'Direct Delivery',
        description: 'Generates not intermediate results,\nbut ready-to-use final products.',
      },
      distributable: {
        title: 'Distributable & Monetizable',
        description:
          'Package your workflows into products,\nshare, sell, and create sustainable growth flywheels.',
      },
      moreFeatures: {
        title: 'More Amazing Features Await Discovery',
        description: '',
      },
    },
  },
  environmentBanner: {
    test: 'TEST ENVIRONMENT. FEATURES MAY BE UNSTABLE.',
    staging: 'STAGING ENVIRONMENT. PLEASE USE WITH CAUTION.',
  },
};

export default translations;
